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

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

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

    Change Dir

    先知cd——熱愛生活是一切藝術(shù)的開始

    統(tǒng)計

    留言簿(18)

    積分與排名

    “牛”們的博客

    各個公司技術(shù)

    我的鏈接

    淘寶技術(shù)

    閱讀排行榜

    評論排行榜

    Velocity學習筆記(下)

     

    Velocity筆記下

    Velocitystruts結(jié)合應用:

    具體通過一個實際的例子來解釋,例子選擇以傳統(tǒng)的注冊模塊為主(主要是joseph的書上就這么寫的)

    首先,web.xml文件配置情況struts部分就不講了,velocity的配置如下所示:

    <servlet>

    <servlet-name>velocity</servlet-name>

    <servlet-class>org.apache.velocity.tools.view.servlet.

    VelocityViewServlet</servlet-class>

    <init-param>

    <param-name>toolbox</param-name>

    <param-value>/WEB-INF/toolbox.xml</param-value>

    </init-param>

    <load-on-startup>10</load-on-startup>

    </servlet>

    <!-- Action Servlet Mapping -->

    <servlet-mapping>

    <servlet-name>velocity</servlet-name>

    <url-pattern>*.vm</url-pattern>

    </servlet-mapping>

    其中velocityservlet配置中的初始參數(shù)傳入了toolbox.xml,該文件的具體內(nèi)容如下:

    <?xml version="1.0"?>

    <toolbox>

    <tool>

    <key>toolLoader</key>

    <class>org.apache.velocity.tools.tools.ToolLoader</class>

    </tool>

    <tool>

    <key>link</key>

    <class>org.apache.velocity.tools.struts.LinkTool</class>

    </tool>

    <tool>

    <key>msg</key>

    <class>org.apache.velocity.tools.struts.MessageTool</class>

    </tool>

    <tool>

    <key>errors</key>

    <class>org.apache.velocity.tools.struts.ErrorsTool</class>

    </tool>

    <tool>

    <key>form</key>

    <class>org.apache.velocity.tools.struts.FormTool</class>

    </tool>

    </toolbox>

    這個xml文件的意義就在于定義了很多類,來串聯(lián)整個strutsvelocity還有javabean等各個元素。

    接著就開始配置struts了,首先考慮到這個應用,struts的第一步就是要寫form了。首先構(gòu)建一個RegisterForm。代碼如下,這個javabean用來當做model定義數(shù)據(jù)。

    package app;

    import org.apache.struts.action.*;

    publicclass RegisterForm extends ActionForm {

     protected String username;

     protected String password;

     protected String password2;

     public String getUsername() { returnthis.username; }

     public String getPassword() { returnthis.password; }

     public String getPassword2() { returnthis.password2; }

     publicvoid setUsername(String username) { this.username = username; };

     publicvoid setPassword(String password) { this.password = password; };

     publicvoid setPassword2(String password) { this.password2 = password; };

    }

    javabean3field屬性,分別是username用戶名,password密碼和password2驗證密碼。

    接著寫控制處理邏輯RegisterAction。代碼如下:

    package app;

    import org.apache.struts.action.*;

    import javax.servlet.http.*;

    import java.io.*;

    publicclass RegisterAction extends Action {

     public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {

        RegisterForm rf = (RegisterForm) form;

        String username = rf.getUsername();

        String password = rf.getPassword();

        String password2 = rf.getPassword2();

        if (password.equals(password2)) {

            return mapping.findForward("success");

        }

        return mapping.findForward("failure");

     }

    }

    通過form表單讀入數(shù)據(jù),如果密碼和驗證密碼相同,那么就跳到success,否則是failure,這個邏輯非常簡單。Struts中也看不出任何的velocity相關(guān)(那當然,這就叫低耦合,各干各的,分層處理)

    然后該配置熟悉的struts-config.xml了。核心代碼如下:

    <struts-config>

    <form-beans>

    <form-bean name="registerForm" type="RegisterForm"/>

    </form-beans>

    <action-mappings>

    <action path="/struts"

    type="RegisterAction"

    name="registerForm">

    <forward name="success" path="/success.vm"/>

    <forward name="failure" path="/failure.vm"/>

    </action>

    </action-mappings>

    </struts-config>

    配置文件與傳統(tǒng)的struts出奇的一致,唯一變化的就是在forward里的path寫成了vm文件,而不是我們傳統(tǒng)的jsp

    好了,寫到現(xiàn)在,MVC中的MC都完成了,該是velocity上場了——View層。

    注冊頁面register.vm的核心代碼:

    <form action="struts.do" method="post">

     username: <input type="text" name="username"/><BR>

     password: <input type="text" name="password"/><BR>

     again   : <input type="text" name="password2"/><BR>

    <input type="submit" name="submit" value="Register"/>

    </form>

    Success跳轉(zhuǎn)頁面success.vm

    <HTML>

    <HEAD>

     <TITLE>Success</TITLE>

    </HEAD>

    <BODY>

     Registration Success!

     Thanks for logging in $!registerForm.username

     <P><A href="register.vm">Try Another?</A></P>

    </BODY>

    </HTML>

    其中只用到了一個$!registerForm.username。整個代碼完成了,壓根沒用到什么context之類的東西。

    源代碼來自
    http://www.wiley.com//legacy/compbooks/gradecki/apache/index.html

    下載ch17.zip即可。
    http://www.ibm.com/developerworks/cn/java/j-sr1.htmlGeorge Franciscus講的也很詳細。

    posted on 2011-04-07 15:43 changedi 閱讀(2670) 評論(2)  編輯  收藏 所屬分類: Java技術(shù)

    評論

    # re: Velocity學習筆記(下) 2011-04-07 19:54 durex

    如果有NVelocity技術(shù)的經(jīng)驗之談就好了,很期待啊,換模板是需要啊  回復  更多評論   

    # re: Velocity學習筆記(下) 2011-04-08 09:07 changedi

    下一步看看velocity的源碼,主要是engine和tools的。筆記會繼續(xù)做的  回復  更多評論   

    主站蜘蛛池模板: 亚洲AV无码乱码在线观看裸奔 | 特黄特色大片免费| 亚洲国产精品无码久久久不卡| 国内自产少妇自拍区免费| 久久99青青精品免费观看| 无套内射无矿码免费看黄| 亚洲欧美日韩中文二区| 亚洲精品国产专区91在线| 中国亚洲女人69内射少妇| 国产aa免费视频| 免费黄色网址入口| 日韩免费精品视频| 天天影院成人免费观看| 国产精品免费大片| a级成人免费毛片完整版| 伊人久久国产免费观看视频| 亚洲高清国产拍精品熟女| 国产成人亚洲合集青青草原精品| 亚洲午夜精品一区二区| 亚洲一区AV无码少妇电影☆| 亚洲毛片不卡av在线播放一区| 日韩精品视频免费观看| 好先生在线观看免费播放| 91精品免费久久久久久久久| 中文字幕免费视频| 曰批全过程免费视频播放网站 | 国产av无码专区亚洲av桃花庵| 亚洲乱码国产一区网址| 亚洲精品tv久久久久| 免费乱码中文字幕网站| 国产伦精品一区二区三区免费迷| 精品久久久久久久免费人妻| 免费人成视频在线| 好男人www免费高清视频在线| 美女视频黄的全免费视频| AA免费观看的1000部电影| 成人网站免费观看| 国产精品色午夜视频免费看| 午夜老司机免费视频| 免费看国产曰批40分钟| 亚洲日本中文字幕天堂网|