struts 2標簽 樣式問題
初學(xué)struts2,在頭腦中一直在想一個問題,就是對于struts2 ,當應(yīng)用其自身的標簽時,例如:
<s:form>
<s:textfield name="a"></s:textfield>
</s:form>
當查看源代碼時為:
<form>
<table>
<tr><td><input type="text" name=a/></td></tr>
</table>
</form>
自動添加的table tr td 標簽,但如果想 一行顯示多列怎么辦?
網(wǎng)上查了查,有好多奇怪的解決辦法,比如說通過在頁面上判斷,看什么時候輸入<tr> 標簽,但我認為,struts2這樣做,那也太不人道了,后終于查到原因,現(xiàn)總結(jié)如下:
原理:在struts2中加入了theme(主題)的概念,通過設(shè)置不同的主題,可以讓struts的代碼輸出不同的html代碼,你也就相應(yīng)得到不同的布局效果。
問題一:Struts2有哪些主題?
Struts2提供了三種主題,ajax, simple, xhtml,它默認的是xhtml主題,當然你可以寫任意個你自己的主題,我們稱之為自定義主題
問題二:Struts2怎么改?
有兩種方法可以解決.
1.簡單的方法(也很實用)
在Struts.xml中,加上下一行代碼就可以了
<constant name="struts.ui.theme" value="simple" />
代表所有的頁面采用的都是 simple主題了,這時它輸出的頁面,不回添加任何多余的代碼,比如 table tr td 等,我們就可以像其他編輯頁面的方式編輯頁面的風格。
或者 在 <s:form 中添加 theme
<s:form theme="simple"></s:form>
struts2每個標簽都有theme屬性
2.在Struts.properties里改:
#設(shè)置主題
struts.ui.theme=simple
可見另一篇:struts.properties