作者:Flyingis
Struts標(biāo)簽提供了大部分應(yīng)用來滿足創(chuàng)建MVC架構(gòu)表現(xiàn)頁面的所有功能。在一個(gè)MVC應(yīng)用中,請(qǐng)求并不是直接到達(dá)表現(xiàn)頁面,而是首先經(jīng)過控制器,僅當(dāng)業(yè)務(wù)數(shù)據(jù)被獲取,并且業(yè)務(wù)規(guī)則被應(yīng)用后,控制器才處理表現(xiàn)頁面。頁面的職責(zé)就是輸出結(jié)果和捕獲用戶輸入,Struts標(biāo)簽的功能目的就在于此。
雖說Struts標(biāo)簽庫能滿足我們大多數(shù)情況下的需要,但不是唯一可用的標(biāo)簽,例如JSTL標(biāo)簽、DisplayTag等等。Struts標(biāo)簽和其他各種標(biāo)簽的基本使用方法在各種書本上都有介紹,這里總結(jié)一下標(biāo)簽使用中的個(gè)人體會(huì),并不斷更新。
1. Struts中包含三個(gè)標(biāo)簽庫,Bean、HTML和Logic,其中HTML標(biāo)簽庫依賴于框架,其他大部分標(biāo)簽不依賴于框架,可以在其他應(yīng)用中使用。
2. Struts HTML標(biāo)簽和一般HTML標(biāo)簽具有一定的對(duì)應(yīng)關(guān)系,但也存在一點(diǎn)不同。使用Scriptlet的HTML標(biāo)簽需要在使用前在頁面中將Form Bean聲明為一個(gè)腳本變量,Struts標(biāo)簽則不需要聲明就能找到該Bean。在默認(rèn)情況下,Struts標(biāo)簽將對(duì)剩下的表單使用同一個(gè)Bean,所以不需要對(duì)每一個(gè)控件都進(jìn)行指定。例如:
<input type=“text” name=“username” value=“<%=user.getUsername()%>”/>
使用Struts HTML標(biāo)簽
<html:text property=“username”>
3. Struts HTML標(biāo)簽和一般HTML標(biāo)簽具有一定的對(duì)應(yīng)關(guān)系,但存在幾個(gè)特例,在Struts HTML標(biāo)簽中,Messages / errors / rewrite分別用來表示顯示一組消息、顯示一組錯(cuò)誤消息、輸出一個(gè)編碼的URL路徑,而這些在一般HTML標(biāo)簽中就不存在。
4. HTML有時(shí)需要處理特殊的字符,包括標(biāo)簽的括號(hào)、&符號(hào)以及其他的內(nèi)容,如果這些字符作為文本字段的一部分,可能會(huì)出現(xiàn)錯(cuò)誤并造成HTML崩潰。如果確實(shí)需要在數(shù)據(jù)中存儲(chǔ)這些字符,可以在網(wǎng)頁中進(jìn)行設(shè)置,使得這些字符不被頁面過濾成為特殊字符,例如:
<bean:write name=“UserForm” property=“username” filter=“false”/>
5. 使用<html:password>時(shí),如果頁面校驗(yàn)錯(cuò)誤,password屬性將從Form Bean中讀回,并放置在password標(biāo)簽中。雖然密碼會(huì)被瀏覽器用符號(hào)隱藏,但在HTML源代碼中仍然可以看到,存在安全上的隱患,因此可以在標(biāo)簽中加入redisplay=false來保證password總是以空白狀態(tài)顯示給用戶。
6. 提供一個(gè)Javascript的返回按鈕,可以定義一個(gè)沒有屬性的簡(jiǎn)單表單,Struts配置文件:
<action path=“/adduser”
type=“org.apache.struts.ForwardAction”
name=“BlankForm”
scope=“request”
validate=“false”
parameter=“/user.do”>
JSP頁面:
<html:form action=“/adduser”>
<html:button property=“page” onClick=“history.go(-1)”>here</html:button>
</html:form>
posted on 2006-03-16 09:17
xnabx 閱讀(202)
評(píng)論(0) 編輯 收藏 所屬分類:
2、Web