2012-12-16 95 views
3

我新的支柱,并想知道为什么我们指比前html标签Struts标签时,他们似乎都在做同样的事情, 什么是使用了HTML标签Struts标签的优势。 像为什么我们使用struts标签而不是旧的HTML标签,它带来了什么区别?

<s:form action="myAction"> 
    <s:textfield name="username"></s:textfield> 
    <s:textfield name="password"></s:textfield> 
    <s:submit name="submit" value="submit"></s:submit> 
</s:form> 

<form action="myAction" method="post"> 
    <input type="text" name="username"/> 
    <input type="text" name="password"/> 
    <input type="submit" name="submit"/> 
</form> 

我用Google搜索,但没有得到任何令人满意的答案,帮助事先

我知道它增加了一些额外的东西如标签什么的,那就是我没意见赞赏,但我想知道它是否执行了任何与性能有关的任何事情或任何特定于请求对象的事情,其他任何事情都只是为了避免程序员额外的输入。

回答

3

有不同类型的Struts 2标签。

在特定形式的标签是有益的,但是在使用的功能取决于整个的Struts 2的主题。 "simple"主题几乎没有超出标准HTML标记的优势。主题默认"xhtml"发出表格行和一些样式。自定义主题实现您所需的任何功能。无论底层JSP源码如何都不需要更改。

的主要优点是:

  • 验证错误消息
  • 形式呈现/造型
  • 框架集成(例如,从动作自动填入值)

也有一组Dojo(非常不赞成使用)和jQuery标记,它们在自定义标记中包含大量JavaScript功能,这使得简单的动态功能成为可能。简单。

也有非视图的标记,如<s:iterator>等他们的一些功能是JSTL的副本(<c:forEach>在iterator标签的情况下)。在功能重叠的情况下,在这种情况下使用S2标签并没有太多好处。

有些标签没有JSTL的模拟,像<s:merge><s:sort>。 ,这是否适合视图层的功能是一个不同的讨论。一些提供了与Struts 2的其他方面的集成,例如I18N(例如,<s:text>)。一些了解Struts 2配置(例如,<s:url>)。

任何的目的是为了简化视图层编程(如JSP)。 S2提供了很多标签来帮助解决这个问题。有些简单和通用(非UI标签),而UI标签使用FreeMarker的实现,都严重定制。

2

在这个特别的例子中,并不是很多,但好处是它在解析时被替换为HTML,而它被替换为是可定制的。您可以定义一个标准表单模板,并用<s:form>替换。

换句话说,它是(理论上),以规范网站行为和减少打字。

更新:史蒂芬指出了一个更有价值的原因,Struts的可以智能填充和更新<s:form>领域,如离开提交错误后填写表格。

+0

我不是说对于这个特殊情况,我的意思是所有的struts标签,他们都疯了相同的标签,然后可能有一些特别的关于它,我找不到任何特殊的理由来肯定这些标签融合, –

+0

对于所有的struts标签来说,重点是相同的,以便实现简洁易读的模板。 – dimo414

+0

主要优势是显示验证错误,并且如果存在验证错误,则字段值已填入。 –

0

Struts纯粹使用JAVA!因此,即使程序员没有关于HTML/JavaScript的知识,他可以使用内置的支柱代码还起作用了他的去路。 Struts还提供了像Javascript一样的内置验证功能。

相关问题