Java 为什么我们使用struts标记而不是旧的HTML标记,它带来了什么区别?
我是struts的新手,我想知道为什么我们要引用struts标记而不是以前的html标记,因为它们似乎在做相同的事情, 与html标记相比,使用struts标记的优势是什么。 像Java 为什么我们使用struts标记而不是旧的HTML标记,它带来了什么区别?,java,struts2,Java,Struts2,我是struts的新手,我想知道为什么我们要引用struts标记而不是以前的html标记,因为它们似乎在做相同的事情, 与html标记相比,使用struts标记的优势是什么。 像 我已经在谷歌上搜索过了,但没有得到任何满意的答案,我们将提前感谢您的帮助 我知道它添加了一些额外的东西,比如标签之类的,这对我来说没什么问题,但是我想知道的是,它是否对性能有任何影响,或者对请求对象有任何特殊的影响,还有其他什么,只是为了避免程序员额外的键入。在这个特定的示例中,不是很多,但好处是它在解析时被HTM
我已经在谷歌上搜索过了,但没有得到任何满意的答案,我们将提前感谢您的帮助
我知道它添加了一些额外的东西,比如标签之类的,这对我来说没什么问题,但是我想知道的是,它是否对性能有任何影响,或者对请求对象有任何特殊的影响,还有其他什么,只是为了避免程序员额外的键入。在这个特定的示例中,不是很多,但好处是它在解析时被HTML替换,并且它被替换的内容是可定制的。您可以定义标准表单模板,并将其替换为
换句话说,它(理论上)是标准化站点行为和最小化键入
更新:史蒂文指出了一个更有价值的原因,即Struts可以智能地填充和更新
字段,例如在提交错误后保留填写的表单。有不同类型的Struts 2标记
表单标签特别有用,但它们的功能完全取决于所使用的Struts 2主题。“simple”
主题除了标准HTML标记外几乎没有任何好处。默认的“xhtml”
主题会发出表单表行和一些样式。自定义主题实现您想要的任何功能。不管主题是什么,底层JSP源代码永远不需要更改
主要优点是:
- 验证错误消息
- 表格展示/设计
- 框架集成(例如,从操作自动填充的值)
等。它们的一些功能是JSTL的副本(
对于迭代器标记)。在这种情况下,当功能重叠时,使用S2标记没有太多好处
有些标记没有JSTL模拟,如
或
,这一功能是否适用于视图层则是另一种讨论。有些提供了与Struts 2的其他方面的集成,如I18N(例如,
)。有些人了解Struts 2的配置(例如,
)
任何自定义标记的目的都是简化视图层编程(例如JSP)。S2提供了很多标签来帮助实现这一点。有些是简单和通用的(非UI标记),而UI标记是使用FreeMarker实现的,并且是高度可定制的。Struts纯粹使用JAVA!因此,即使程序员不了解HTML/JAVASCRIPT,他仍然可以使用struts的内置标记找到自己的方法。Struts还提供了与Javascript一样的内置验证功能 我不是说对于这个特殊的例子,我是说对于所有的struts标签,它们都有相同的标签,然后可能有一些特别的地方,我找不到任何特别的理由来明确地融合这些标签,对吧,对于所有的struts标签,重点是相同的-为了使简洁,可读模板。主要的好处是显示验证错误,并且如果存在验证错误,字段值已经填充。
<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>