<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 495,comments - 227,trackbacks - 0

    javascript 支持

    ?????? web 應用中,使用 javascript 的機會非常多。雖然不少書上提及客戶有可能從瀏覽器關閉 js 的執(zhí)行,但是要想完全的不使用它,目前看來好像還不行。比如一些復雜的 UI 是必須通過 js 來實現(xiàn)的(如下拉式菜單等等)。那么 validation 框架支不支持客戶端的 js 驗證呢?

    答案是:當然。具體做法是:

    -????????? 在頁面 html:form 標簽內部添加 onsubmit="return validateEditForm(this);" (具體的語法: validate+ validation.xml 文件中定義的 form 的名字);如:

    <html:form action="<%=action%>" method="post" onsubmit="return validateEditForm(this);">

    -????????? html:form 內部塊中添加: <html:javascript formName="editForm"/>

    ?????? 如此 2 步即可。雖然, validation 框架非常簡單易用,但是還是有需要注意的地方。

    使用注意

    1.?????? 使用 validation 框架后, form 必須從 ValidatorForm 中派生,同時必須在你的 validate 方法中先調用基類的 validate 方法。對于使用 Dyna 開頭的方法來創(chuàng)建 formbean 的讀者,你也必須改為以 dyna 開頭含有 validator form

    2.?????? 注意 DynaValidatorForm ValidatorForm )和 DynaValidatorActionForm ValidatorActionForm )的區(qū)別。剛開始時從幫助中沒看明白這 2 者的區(qū)別,后來從網(wǎng)上一篇文章中得到了用法的區(qū)別。前者主要的視角是 formbean ,而后者的視角是 action

    formbean 被不同的 action 使用時,對于不同的 action 而言,使用的 formbean 的屬性集合有大有小。此時如果仍然以 formbean 為主體,會造成其他 action 的不正常使用。因此, struts 中提出了 DynaValidatorActionForm ValidatorActionForm )。此時在 validation.xml 中的 form 標簽的 name 屬性改為 action path 屬性,又由于 action 中有 attribute name 屬性, validation 框架就可根據(jù)這個 action 得到對應的 formbean 。例子:

    <formset>

    ? <form name="/createAddress">

    ??? <field property="city"

    ????????? depends="required">

    ????? <arg0 key="prompt.city"/>

    ??? </field>

    ? </form>

    ? <form name="/editAddress">

    ??? <field property="state"

    ????????? depends="required">

    ????? <arg0 key="prompt.state"/>

    ??? </field>

    ? </form>

    </formset>

    3.?????? DispatchAction 的配合。 Struts1.1 DispatchAction 使得相關的 Action 的關系緊密,大大減少了應用中 Action 的個數(shù),但是隨之而來也帶來了使用 Validation 框架的不便,不能不說是一個遺憾。讀者也許認為這種情況可以使用第 2 條的解決方案來解決,即采用 DyanValidatorActionForm ,然后在 Validation.xml 文件中 form 的名稱使用不同的 Actiond path ,即在 validation.xml 中使用: <form name="/user.do?method=doAdd"> ??? <form name="/user.do?method=doLoad"> 。然而,在目前的版本中 Validation 框架并不支持這種辨認。一種繞過這個情況的方法是,針對同一個 Action 實現(xiàn)類在 Struts-config.xml 文件中定義多個 Action path ,在不需要進行驗證的地方將 Action validate 屬性置為 false 。即:

    struts-config.xml

    <action attribute="editForm" path="/user" name="editForm" input="/editUser.jsp"

    parameter="method" scope="request" type="foxgem.struts.UserDispatchAction"

    ???? validate="true">

    ?????????????? <forward name="load" path="/editUser.jsp"/>

    ?????????????? <forward name="action" path="/userquery.do?pageId=1"/>

    </action>

    ???????

    <action attribute="editForm" path="/loaduser" name="editForm" input="/editUser.jsp"

    ??????? ? parameter="method" scope="request" type="foxgem.struts.UserDispatchAction"

    ??????? ? validate="false">

    ?????????????? <forward name="load" path="/editUser.jsp"/>

    ?????????????? <forward name="action" path="/userquery.do?pageId=1"/>

    </action>

    然后在 validation.xml 文件中使用 2 的方法。

    結束語

    ?????? 總的說來, validation 框架大大的提高了頁面驗證的開發(fā)效率,更吸引人的是這些驗證方法可通過自定義的 validator 來得到復用。使得這些驗證代碼更加集中,可維護性得到加強。當然隨著項目的進行, validation.xml validator-rules.xml 會隨之增長,這部分的維護工作加重了。

    ?????? 同時,由于不能非常好的和 DispatchAction 一起協(xié)作,也使得大量使用 DispatchAction 的項目不能非常好的使用它。建議大量使用 DispatchAction 和頁面驗證非常復雜多變的項目可以暫時按原來的方法來驗證,不使用 validation 框架。

    ?????? 至于 validation 框架的其他詳細信息,請參見 struts 的文檔,在此不再贅述。

    參考資料

    n???????? http://raibledesigns.com/wiki/Wiki.jsp?page=SecuringDispatchAction DispatchAction validation 框架的協(xié)作解決方案來源于此。

    n???????? http://otn.oracle.com/oramag/oracle/04-jan/o14dev_struts.html Check Your Form with Validator

    n???????? http://www-900.ibm.com/developerWorks/cn/java/l-struts1-1/ 深入 Struts 1.1

    n???????? http://javaboutique.internet.com/tutorials/Struts11Val/ Stepping through the Struts 1.1 Validator

    posted on 2006-08-17 19:51 SIMONE 閱讀(673) 評論(0)  編輯  收藏 所屬分類: struts
    主站蜘蛛池模板: AA免费观看的1000部电影| 香蕉高清免费永久在线视频| 全部在线播放免费毛片| 免费大片在线观看网站| 性色午夜视频免费男人的天堂| 亚洲人成在线免费观看| 亚洲Av无码国产情品久久| 久久国产精品萌白酱免费| 亚洲AV无码专区在线电影成人| 亚洲深深色噜噜狠狠爱网站| 毛片免费在线观看网址| 成人无码视频97免费| 久久综合久久综合亚洲| 亚洲永久无码3D动漫一区| 成人免费视频77777| 三级毛片在线免费观看| 亚洲av无码一区二区三区人妖 | 好大好深好猛好爽视频免费| 人妻18毛片a级毛片免费看| 亚洲精品国产手机| 亚洲人成无码网WWW| 四虎影院免费在线播放| 999zyz**站免费毛片| 亚洲精品天堂无码中文字幕| 亚洲爱情岛论坛永久| 又粗又硬又黄又爽的免费视频| 91免费播放人人爽人人快乐| 99久久免费国产精品热| 亚洲a∨国产av综合av下载| 亚洲综合亚洲国产尤物| 久久91亚洲人成电影网站| 女人让男人免费桶爽30分钟| 国产午夜成人免费看片无遮挡 | 国产嫩草影院精品免费网址| 色欲色香天天天综合网站免费| 亚洲欧美第一成人网站7777| 久久99国产亚洲精品观看| 中文字幕在线亚洲精品| 免费看小12萝裸体视频国产| 成人免费午夜视频| 国产免费毛不卡片|