簡體   English   中英

為什么我們使用struts標簽而不是舊的HTML標簽,它帶來了什么區別?

[英]Why do we use struts tags and not the old HTML tags , what difference does it bring?

我是struts的新手,並且想知道為什么我們將struts標簽引用到以前的html標簽上時,它們似乎都在做同樣的事情,使用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搜索了,但沒有得到任何令人滿意的答案,提前感謝幫助

我知道它增加了一些額外的東西,比如標簽或其他東西,這對我很好,但我想知道它是否與性能或任何特定於請求對象的任何事情,任何其他只是避免程序員的額外打字。

Struts 2標簽有不同類型。

表單標簽特別有用,但它們的功能完全取決於所使用的Struts 2主題。 "simple"主題提供的標准HTML標簽幾乎沒有任何好處。 默認的"xhtml"主題會發出表格行和一些樣式。 自定義主題實現您想要的任何功能。 無論主題如何,底層JSP源都不需要改變。

主要優點是:

  • 驗證錯誤消息
  • 表單呈現/樣式
  • 框架集成(例如,從操作自動填充的值)

還有一組Dojo(非常棄用)和jQuery標記,它們在自定義標記中包含了大量的JavaScript功能,這使得簡單的動態功能變得非常簡單。

還有非視圖標記,如<s:iterator>等。它們的一些功能是JSTL的副本(在迭代器標記的情況下為<c:forEach> )。 當功能重疊時,在這種情況下使用S2標簽沒有太多好處。

某些標簽沒有JSTL模擬,例如<s:merge><s:sort> ,該功能是否適用於視圖層是一個不同的討論。 有些提供了與Struts 2的其他方面的集成,如I18N(例如, <s:text> )。 有些人了解Struts 2配置(例如, <s:url> )。

任何自定義標記的目的是簡化視圖層編程(例如,JSP)。 S2提供了很多標簽來幫助解決這個問題。 有些是簡單和通用的(非UI標簽),而UI標簽是使用FreeMarker實現的,並且可以大量定制。

在這個特殊的例子,不是很多,但好處是它能夠在分析時用HTML取代, 被替換為定制。 您可以定義標准表單模板,並用<s:form>替換它。

換句話說,(理論上)標准化站點行為並最小化鍵入。

更新: Steven指出了一個更有價值的原因,即Struts可以智能地填充和更新<s:form>字段,例如在提交錯誤后留下填寫的表單。

Struts純粹使用JAVA! 因此,即使程序員不了解HTML / JAVASCRIPT,他仍然可以使用struts的內置標簽來解決問題。 Struts還提供內置的驗證工具,就像Javascript一樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM