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

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

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

    Change Dir

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

    統計

    留言簿(18)

    積分與排名

    “牛”們的博客

    各個公司技術

    我的鏈接

    淘寶技術

    閱讀排行榜

    評論排行榜

    Velocity學習筆記(下)

     

    Velocity筆記下

    Velocitystruts結合應用:

    具體通過一個實際的例子來解釋,例子選擇以傳統的注冊模塊為主(主要是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配置中的初始參數傳入了toolbox.xml,該文件的具體內容如下:

    <?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文件的意義就在于定義了很多類,來串聯整個strutsvelocity還有javabean等各個元素。

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

    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表單讀入數據,如果密碼和驗證密碼相同,那么就跳到success,否則是failure,這個邏輯非常簡單。Struts中也看不出任何的velocity相關(那當然,這就叫低耦合,各干各的,分層處理)

    然后該配置熟悉的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>

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

    好了,寫到現在,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跳轉頁面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技術

    評論

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

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

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

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

    主站蜘蛛池模板: 久操视频在线免费观看| 国产精品偷伦视频免费观看了| 国产精品偷伦视频观看免费| 国产专区一va亚洲v天堂| 在线播放亚洲精品| 全部免费毛片在线| 一级女性全黄久久生活片免费 | 一级特黄特色的免费大片视频| 国产91久久久久久久免费| 国产精品亚洲一区二区三区| 国产成人无码免费视频97| 野花视频在线官网免费1| 亚洲国产午夜中文字幕精品黄网站 | 91精品国产免费入口| 亚洲精品影院久久久久久| 9久9久女女免费精品视频在线观看| 色噜噜亚洲男人的天堂| 免费观看的毛片手机视频| 国产精品久久久久久亚洲小说| 亚洲成人影院在线观看| 久久久久久久国产免费看| 亚洲一区免费观看| 免费无码精品黄AV电影| 亚洲欧美成人一区二区三区| 国产一卡二卡≡卡四卡免费乱码| 污污免费在线观看| 亚洲色自偷自拍另类小说 | 国产桃色在线成免费视频| 在线观看亚洲AV日韩A∨| 一级毛片直播亚洲| 免费观看91视频| 亚洲综合激情五月丁香六月| 亚洲AV中文无码乱人伦| 免费在线看污视频| 亚洲国产日韩视频观看| 亚洲精品乱码久久久久久蜜桃| 3344永久在线观看视频免费首页| 亚洲欧美国产精品专区久久| 亚洲综合伊人久久大杳蕉| 永久免费视频网站在线观看| 在线观看亚洲免费|