【问题标题】:Why do we use struts tags and not the old HTML tags , what difference does it bring?为什么我们使用struts标签而不是旧的HTML标签,它带来了什么不同?
【发布时间】:2012-12-16 21:13:59
【问题描述】:

我是 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了,但没有得到任何满意的答案,提前感谢帮助

我知道它添加了一些额外的东西,比如标签或其他东西,这对我来说很好,但我想知道它是否对性能或任何特定于请求对象的东西有任何作用,其他任何东西都只是避免为程序员。

【问题讨论】:

    标签: java struts2


    【解决方案1】:

    有不同类型的 Struts 2 标签。

    表单标签尤其有用,但它们的功能完全取决于所使用的 Struts 2 主题。 "simple" 主题几乎没有提供超出标准 HTML 标记的任何好处。默认的"xhtml" 主题会发出表格行和一些样式。自定义主题实现您想要的任何功能。无论主题如何,底层 JSP 源都不需要更改。

    主要优点是:

    • 验证错误消息
    • 表单展示/样式
    • 框架集成(例如,从操作中自动填充的值)

    还有一组 Dojo(非常不推荐)和 jQuery 标签,它们在自定义标签中封装了大量 JavaScript 功能,这使得简单的动态功能非常变得简单。

    还有非视图标签,如&lt;s:iterator&gt; 等。它们的一些功能是JSTL 的副本(&lt;c:forEach&gt; 在迭代器标签的情况下)。在这种情况下,当功能重叠时,使用 S2 标签并没有太多好处。

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

    any 自定义标签的目的是简化视图层编程(例如,JSP)。 S2 提供了很多标签来帮助解决这个问题。有些是简单和通用的(非 UI 标签),而 UI 标签是使用 FreeMarker 实现的,并且可以高度自定义。

    【讨论】:

      【解决方案2】:

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

      换句话说,它(理论上)是为了标准化网站行为并尽量减少打字。

      更新: Steven 指出了一个更有价值的原因,即 Struts 可以智能地填充和更新 &lt;s:form&gt; 字段,例如在提交错误后留下填写的表单。

      【讨论】:

      • 我不是指这个特殊情况,我是指所有的struts标签,他们有相同的标签,那么它可能有什么特别之处,我找不到任何特别的理由来肯定融合这些标签,
      • 对,对于所有的struts标签,要点是一样的——启用简洁易读的模板。
      • 主要好处是显示验证错误,并且如果存在验证错误,则字段值已经填写。
      【解决方案3】:

      Struts 纯粹使用 JAVA!因此,即使程序员不了解 HTML/JAVASCRIPT,他仍然可以使用 struts 的内置标签来解决问题。 Struts 还提供了内置的验证工具,就像 Javascript 一样。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-30
        • 1970-01-01
        • 1970-01-01
        • 2010-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多