<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
    2005年Frank W. Zammetti擴(kuò)展了Struts的Tag庫(kù),使Struts具備了AJAX功能。
    ????? (注:下面的代碼引用自Frank W. Zammetti 的ajaxtags包)
    ?
    ????? Tag庫(kù)的擴(kuò)展
    ????? 1、FormTag
    ?????????? 增加了refAjax屬性以及setter和getter方法;
    ????? 2、BaseHandlerTag
    ?????????? 增加了refAjax屬性以及setter和getter方法;
    ?????????? 同時(shí)擴(kuò)展了prepare×××Events方法,使其加載Ajax屬性,如:
    ?????????? if (getOnkeydown() != null) {
    ??????????????????......
    ???????????}
    ???????????/* Frank W. Zammetti */
    ???????????else {
    ?????????????? ???prepareAjax("onkeydown", handlers);
    ???????????}
    ???????????/* Frank W. Zammetti */
    ????? 3、Struts-Html.tld
    ?????????? 增加了refAjax屬性;
    ?
    ??????應(yīng)用
    ????? 1、ajax-config.xml
    ?????????? ......
    ?????????? <form ajaxRef="example1">
    ????????????? ??<element ajaxRef="button">
    ?????????????????? ???<event type="onclick">
    ??????????????????????????? //發(fā)送請(qǐng)求的設(shè)置
    ????????????????????????????<requestHandler type="std:QueryString">
    ?????????????????????????????????<target>example1.do</target>
    ?????????????????????????????????<parameter>firstName=firstName,lastName=lastName</parameter>
    ????????????????????????????</requestHandler>
    ??????????????????????????? //回調(diào)函數(shù)(方法)及回寫(xiě)區(qū)域的設(shè)置
    ????????????????????????????<responseHandler type="std:InnerHTML">
    ??????????????????????????? ?????<parameter>example1_resultLayer</parameter>
    ????????????????????????????</responseHandler>
    ??????????????????????</event>
    ????????????? ??</element>
    ???????? ? </form>
    ?????????? ......
    ??????2、struts-config.xml
    ?????????? ......
    ?????????? //與其它Action的區(qū)別是:Ajax調(diào)用的Action沒(méi)有input和forward
    ?????????? <action path="/example1" name="example1Form" scope="request"
    ??????????????????????????? ?type="com.omnytex.ajaxtags.Example1Action" />
    ?????????? ......
    ?????????? //Ajax Tag Plugin
    ?????????? <plug-in className="org.apache.struts.taglib.html.ajax.AjaxInit" />
    ?????????? ......
    ????? 3、Jsp客戶界面
    ?????????? ......
    ?????????? //對(duì)應(yīng)于ajax-config.xml中的form ajaxRef
    ?????????? <html:form action="example1" ajaxRef="example1">
    ????????????????......
    ??????????????? //對(duì)應(yīng)于ajax-config.xml中的Element ajaxRef
    ??????????????? <html:button property="button" value="Click to do Ajax!" ajaxRef="button" />
    ?????????? </html:form>
    ???????????Result:<br>
    ???????????//對(duì)應(yīng)于ajax-config.xml中的responseHandler
    ???????????<span id="example1_resultLayer">&nbsp;</span>
    ?????????? ......
    ?????????? //啟用Ajax(應(yīng)該放在Jsp的最后)
    ?????????? <html:enableAjax />
    ?????????? ......
    ????? 4、Action
    ?????????? ......
    ????????? ?public ActionForward execute( ...... )?throws Exception {
    ??????????????? try {
    ??????????????????? ......
    ??????????????????? //Ajax的Action需要輸出內(nèi)容到out
    ??????????????????? PrintWriter out = response.getWriter();
    ???????????????? ???out.println(......);
    ???????????????? ???out.flush();
    ???????????????? ???out.close();
    ????????????????} catch (Exception e) {
    ??????????????? ??? System.err.println("Exception in Example1Action.execute(): " + e);
    ????????????????}
    ??????????????? //由于Ajax的Action輸出的內(nèi)容由頁(yè)面的區(qū)域接收,不需要跳轉(zhuǎn)到其它頁(yè)面
    ??????????????? //所以,返回null
    ???????????? ?? return null;
    ???????????}
    ?????????? ......
    ?
    ??????Struts Ajax Tag工作原理
    ??????1、Struts啟動(dòng),加載AjaxInit;
    ????? 2、AjaxInit解析ajax-config.xml;
    ????? 3、Struts加載AjaxEnabled的Jsp;
    ????? 4、Struts-AjaxTag根據(jù)Form ajaxRef和elment ajaxRef找到ajax-config的設(shè)置;
    ????? 5、輸出AjaxEnabled的Html(Tag庫(kù)加入了Ajax需要的Script,如:XMLHttpRequest);
    ????? 6、用戶輸入數(shù)據(jù),提交數(shù)據(jù)(異步模式提交后,用戶可以繼續(xù)其它操作);
    ????? 7、XMLHttpRequest對(duì)象接管提交數(shù)據(jù),并向Struts提交do及參數(shù);
    ????? 8、Struts ActionServlet加載FormBean,和相應(yīng)的Action;
    ????? 9、Struts Action執(zhí)行相應(yīng)邏輯,得到返回的數(shù)據(jù),通過(guò)out輸出;
    ????? 10、XMLHttpRequest得到Struts返回的數(shù)據(jù);
    ??????11、XMLHttpRequest調(diào)用設(shè)置的回調(diào)函數(shù)(方法),輸出數(shù)據(jù)到指定的區(qū)域;
    posted on 2006-11-22 14:10 SIMONE 閱讀(1103) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): AJAXstruts
    主站蜘蛛池模板: 中国黄色免费网站| 永久黄网站色视频免费直播| 性xxxx黑人与亚洲| 毛茸茸bbw亚洲人| 国语成本人片免费av无码| 永久免费精品影视网站| 午夜在线a亚洲v天堂网2019| 亚洲人成依人成综合网| 免费国产一级特黄久久| 在线jyzzjyzz免费视频| 国国内清清草原免费视频99| 国色精品va在线观看免费视频| 免费观看四虎精品成人| 亚洲AV香蕉一区区二区三区| 亚洲综合图片小说区热久久| 亚洲色无码一区二区三区| 亚洲黄片手机免费观看| 国产又黄又爽又猛的免费视频播放 | 国产福利免费观看| 中文字幕亚洲专区| 亚洲白嫩在线观看| 免费很黄无遮挡的视频毛片| 免费视频成人手机在线观看网址| 国产国产人免费人成成免视频| 视频一区在线免费观看| 另类图片亚洲校园小说区| 人人狠狠综合久久亚洲| 你好老叔电影观看免费| a级毛片无码免费真人久久| 成人福利免费视频| 无码区日韩特区永久免费系列| 免费国产不卡午夜福在线| 久久亚洲私人国产精品vA| 亚洲人和日本人jizz| 亚洲H在线播放在线观看H| 亚洲人成图片网站| 日批视频网址免费观看| 日韩特黄特色大片免费视频| 亚洲精品乱码久久久久久蜜桃| 亚洲综合无码一区二区三区| 产传媒61国产免费|