Sturts2爲了簡化咱們的開發,也爲咱們提供了UI標籤…也就是顯示頁面的標籤…..css
可是呢,Struts2是服務端的框架,所以使用頁面的標籤是須要在服務器端解析而後再被瀏覽器解析,最後才顯示在頁面上的。所以,它的性能是不夠HTML標籤好的…HTML直接就可以被瀏覽器解析瀏覽器
還有一點是:咱們在寫網頁的時候,確定是須要使用div+css的頁面佈局的。使用Struts2UI標籤也無法幹了….所以,除了有必要的話,纔去使用Struts2UI標籤ruby
<%--咱們發現,Struts2UI標籤用起來和HTML是差很少的--%> <s:form id="form1" name="form1" method="POST" action="#"> <%--輸入框數據,lable就至關於咱們之前外邊寫的數據--%> <s:textfield label="用戶名" name="user.username"/> <%--密碼框--%> <s:password label="密碼" name="user.password"/> <%--提交按鈕--%> <s:submit value="提交"/> </s:form>
當咱們查看源文件的時候,發現Struts2UI標籤爲咱們自動加入了不少的標籤服務器
上面已經說了,Struts2UI標籤爲咱們自動加入了不少的標籤,那有的時候,咱們不想要,或者換一種風格的話,怎麼辦???markdown
Struts2UI標籤也爲咱們提供了「主題」這樣的功能…框架
當咱們在表單中設置theme屬性爲simple以後…咱們發現源文件Struts2自動爲咱們添加的標籤全沒了。佈局
若是咱們想整個項目都是使用simple爲主題的話,咱們能夠在配置文件中配置!性能
<constant name="struts.ui.theme" value="simple"/>
咱們對數據回顯也不會陌生,在使用EL表達式的時候就已經用過了數據回顯了….那爲啥數據回顯放在Struts2標籤這裏講解呢???由於Struts2也提供了數據回顯的支持,而且,使用數據回顯必需要使用Struts2的標籤…ui
在Struts中按照正常思路寫數據回顯是這樣的:spa
public String login() { //把數據存儲到域中 Map<String, Object> request = ActionContext.getContext().getContextMap(); request.put("username", "zhongfucheng"); request.put("password", "123"); return SUCCESS; }
<s:form id="form1" name="form1" method="POST" action="" > <%--輸入框數據,lable就至關於咱們之前外邊寫的數據--%> <s:textfield label="用戶名" name="user.username" value="%{#request.username}"/> <%--密碼框--%> <s:password label="密碼" name="user.password"/> <%--提交按鈕--%> <s:submit value="提交"/> </s:form>
其實,上面的代碼已經實現了數據回顯,但Struts2提供了一個更巧妙的方法
也就是說,Struts2能夠直接在name中就能夠實現數據回顯了….要作的是:
所以,咱們把想要回顯的數據放在CompoundRoot下
//獲得值棧對象 ValueStack valueStack = ActionContext.getContext().getValueStack(); valueStack.set("username","zhongfucheng");
<s:textfield label="用戶名" name="username"/>