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

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

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

    空間站

    北極心空

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks
    ???????????????????????????????????????????????????????????????????????????????作者:喧海
    我們在使用struts的時候免不了生成大量的formBean,當有業務變化的時候還要修改大量的get、set方法,雖然IDE可以幫助生成這些get、set方法,但是數量多的時候也比較麻煩!最近因為工作的需要找到了新版本struts(1.2.7)的一些新加特性,這部分特性可以使你擺脫以前這些煩人的修改。下面我們可以看一些簡單代碼來了解這個新特性


    //form.jsp
    //*************************************************************
    <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
    <%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %>
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ page contentType="text/html; charset=GBK" %>
    <html:html>
    <head>
    <title>
    Jsp
    </title>
    </head>
    <body>
    <html:form action="dynaAction.do" method="POST">
    ??????? 編號: <html:text property="custNo"/>
    ??????? 姓名: <html:text property="custName"/>
    ??????? 地址: <html:text property="address"/>
    ??????? 年齡: <html:text property="age"/>
    ???? e-mail:? <html:text property="email"/>
    ??????? 電話: <html:text property="tel"/>
    <html:submit property="submit" value="Submit"/><br>
    <html:reset value ="Reset"/>
    </html:form>
    </body>
    </html:html>

    jsp頁面沒有變化,主要變化的是FormBean和ActionBean的使用,我們來看FormBena 的變化


    //formbean(dynaActionFm.java)
    //*******************************************************************

    import javax.servlet.http.*;
    import org.apache.struts.action.*;
    import org.apache.struts.validator.*;

    public class dynaActionFm extends LazyValidatorForm {
    ?//以前的版本繼承ActionForm,現在本例繼承了LazyValidatorForm
    ? public ActionErrors validate(ActionMapping actionMapping,
    ?????????????????????????????? HttpServletRequest httpServletRequest) {
    ????? /** @todo: finish this method, this is just the skeleton.*/
    ??? return null;
    ? }

    ? public void reset(ActionMapping actionMapping,
    ??????????????????? HttpServletRequest servletRequest) {
    ? }
    }

    //*******************************************************************

    在FormBean中省略一切的set、get,如果你愿意連這個文件也可以省略掉,只要在strurs-config.xml加入描述既可(不是get、set的描述)
    大家也許在想struts1.1中開始有了DynaActionForm,也可以不用寫那么多的set、get,只要在配置文件(struts-config.xml)中加入相應的屬性配置也可以啊,我們這里可以連配置文件都不用寫了! 具體的類介紹可查閱這里(http://www.niallp.pwp.blueyonder.co.uk/

    下面看action的使用

    //ActionBean(dynaAction.java)
    //*******************************************************************
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionForm;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.Action;
    import org.apache.commons.beanutils.DynaBean;
    import java.util.Map;

    public class dynaAction
    ??? extends Action {
    ? public ActionForward execute(ActionMapping actionMapping,
    ?????????????????????????????? ActionForm actionForm,
    ?????????????????????????????? HttpServletRequest servletRequest,
    ?????????????????????????????? HttpServletResponse servletResponse) {
    ??? DynaBean dynaForm = (DynaBean)actionForm;//轉換為dynaBean,以前的是ActionForm
    ??? String custNo = (String)dynaForm.get("custNo");
    ??? String custName = (String)dynaForm.get("custName");
    ??? String address?? = (String)dynaForm.get("address");???
    ??? //.......do someting
    ??? //原來的使用是form.getXXXXX(),現在是form.get("XXXXX")

    ??? return actionMapping.findForward("listview");//顯示頁面
    ? }
    }

    //*******************************************************************

    從上面可以看出來,lazyBean實現了自動映射,還可以自動實現反射
    這樣的話你的FormBean成為了正在的動態的了,表單增加,在你的Action中就可以使用

    還有不同情況、不同方式的使用,具體可以看http://www.niallp.pwp.blueyonder.co.uk/了解

    下面附struts-config.xml
    //struts-config.xml
    //*******************************************************************
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "<struts-config>
    ? <form-beans>
    ??? <form-bean name="dynaActionFm" type="welcome.dynaActionFm" />
    ? </form-beans>
    ? <action-mappings>
    ??? <action name="dynaActionFm" path="/dynaAction" scope="request" type="welcome.dynaAction">
    ????? <forward name="listview" path="/listJsp.jsp" />
    ??? </action>
    ? </action-mappings>
    ? <message-resources parameter="ApplicationResources" />
    ? <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    ??? <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
    ? </plug-in>
    </struts-config>



    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=469646

    主站蜘蛛池模板: 午夜亚洲福利在线老司机| 亚洲欧洲综合在线| 免费国产黄网站在线观看可以下载| 亚洲毛片在线观看| 在线免费观看视频你懂的| 一级人做人爰a全过程免费视频| 亚洲成人激情在线| 四虎永久免费影院| 91成人在线免费视频| 婷婷亚洲综合一区二区| 亚洲2022国产成人精品无码区| 啦啦啦手机完整免费高清观看| 日批视频网址免费观看| 亚洲精品亚洲人成在线| 亚洲日韩区在线电影| 亚洲精品第一国产综合境外资源 | 亚洲日韩精品无码专区网站| 亚欧日韩毛片在线看免费网站| 色偷偷尼玛图亚洲综合| 久久久久亚洲AV片无码下载蜜桃 | 99人中文字幕亚洲区| 亚洲国产精品成人网址天堂 | 亚洲国产精品lv| 亚洲成年看片在线观看| 免费人成视频在线| 一区二区三区观看免费中文视频在线播放 | 成在线人视频免费视频| 亚洲成a人片在线观看天堂无码| 亚洲AV无码专区在线播放中文| 日本a级片免费看| av免费不卡国产观看| 可以免费观看的国产视频| 女人裸身j部免费视频无遮挡| 亚洲人成电影网站久久| 亚洲狠狠久久综合一区77777| 亚洲国产精品毛片av不卡在线| 性盈盈影院免费视频观看在线一区| 久久精品成人免费网站| 亚洲一区二区三区免费| 综合偷自拍亚洲乱中文字幕| 亚洲综合色一区二区三区|