struts的html標(biāo)簽<html:form></html:from>和html標(biāo)簽<form></from>有什么區(qū)別
1、無(wú)論是struts1還是struts2的標(biāo)簽,都提供了他們對(duì)于驗(yàn)證框架的支持,給我們實(shí)現(xiàn)驗(yàn)證提供了很多方便。
struts的html標(biāo)簽<html:form></html:from>和Struts2的<s:form></s:form>標(biāo)簽是對(duì)form標(biāo)簽的封裝,是struts框架自己定義的標(biāo)簽,便于和他的mvc中的form結(jié)合使用。但經(jīng)過(guò)查看兩個(gè)框架的源碼發(fā)現(xiàn),最好還是用html標(biāo)簽,建議少用struts標(biāo)簽,因?yàn)橐粋€(gè)標(biāo)簽就一位一個(gè)class,那必然占用jvm的內(nèi)存,造成頁(yè)面加載速度緩慢。
就效果而言,他們達(dá)到的效果是一樣的,struts 的html標(biāo)簽不能脫離動(dòng)態(tài)form而獨(dú)立運(yùn)用。但是我們?cè)谄綍r(shí)的開(kāi)發(fā)過(guò)程中,有的情況下并不需要struts form的校驗(yàn)功能,但同時(shí)希望能把頁(yè)面的值保留下來(lái),比如:查詢條件的輸入。所以他有他的局限性
<html:form>的三個(gè)特有作用
1.自動(dòng)生成html文檔的<form>標(biāo)簽,其focus屬性還可以生成相應(yīng)的JavaScript代碼
2.自動(dòng)獲取action屬性中路徑所對(duì)應(yīng)的scope域中的FormBean,存在則獲取,不存在則創(chuàng)建新的,再把這個(gè)FormBean以一個(gè)特殊關(guān)鍵字保存在request中,以便其中的<html:xxx>獲取值是使用
3.自動(dòng)檢查Session中是否存在Token,是則生成隱藏表單域,以防止表單的重復(fù)提交
還有些標(biāo)簽用起來(lái)要比普通的html標(biāo)簽方便的多(代碼量變少了),比如html_link 、 html_optionsCollection 、 html_checkbox 、 html_multibox 等,像這些下拉列表、復(fù)選框等的回顯用Struts的html標(biāo)簽非常容易實(shí)現(xiàn),普通html也簡(jiǎn)單,但代碼一大堆。