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

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

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

    void

    struts2和freemarker集成實例 (注解方式)

    最近要開始做項目了,項目中可能會用到Struts2和Freemarker集成,所以做了個實例給大家分享一下。

     

            前期的配置web.xml,導入jar包就不給大家介紹了,這些內容做過struts2的朋友的非常熟悉,如果有不會的大家可以找一下幫助文檔或者上互聯網上搜索一下解決方法。

     

            看過struts2結構圖的朋友們都應該知道struts2的展現層不再是像struts1那樣單純的jsp了,它能夠集成很多展現層技術,例如今天說的freemarker等等。

     

     

     

            既然上面都說到了freemarker僅僅是一個展現層技術,那么我們自然會想到,freemarker應該和struts2中配置的action標簽中的result有關系,其實就是這樣的,我們知道struts2的result標簽就是匹配跳轉路徑控制展示層的作用,所以我們利用struts2和freemarker的最近本操作就是配置result標簽,把原先的result標簽的type變成freemarker,跳轉的文件變成freemarker的模板文件即可。配置如下:

     

    1. <struts>   
    2.   
    3.  <package name="struts"extends="struts-default">   
    4.   
    5. <action name="userLogin"class="com.test.action.LoginAction" method="userLogin">   
    6.   
    7.        <result name="success" type="freemarker">   
    8.   
    9.          /WEB-INF/templates/user.ftl   
    10.   
    11.        </result>   
    12.   
    13.      </action>   
    14.   
    15.    </package>   
    16.   
    17. </struts>  


     

     

           如果我們要是用struts2的注解方式來配置action的話,那么我們就會這樣配置:

     

    1. @Action(value = "showadd"results ={ @Result(name = "success"type = "freemarker"location ="/flt/adduser.ftl") })  

     

     

     

            總之就是要改result的類型和跳轉文件類型即可。

     

            最后我們說一下我們怎么將模板中的變量變成實際的值,這個也是比較簡單的,我們這個工作要在action中實現,具體就是我們要將模板中的變量定義到action中,并且生成get和set方法,最后在相應的業務方法中將這個變量賦值,這樣struts2就會自動的為我們將值填寫到模板中,形成真實的展現頁面,最后跳轉顯示給用戶。

     

           Freemarker的模板實例:

     

    1. <html>  
    2.   
    3. <head>  
    4.   
    5. <meta http-equiv="Content-Type" content="text/html;charset=gb2312">  
    6.   
    7. <title>Insert title here</title>  
    8.   
    9. </head>  
    10.   
    11. <body>  
    12.   
    13.        <formmethodformmethod="post" action="${formaction}" name="${formname}">  
    14.   
    15.                 
    16.   
    17.               <input id="${adduser_username}" name="${adduser_username}" type="${text}" value="" />  
    18.   
    19.               <input id="${adduser_password}" name="${adduser_password}" type="${text}" value=""/>  
    20.   
    21.               <input id="${adduser_submit}" name="${adduser_submit}" type="${submit}" value="adduser" />  
    22.   
    23.        </form>  
    24.   
    25. </body>  
    26.   
    27. </html>  

     

     

          對應的action:

     

    1. private Stringformaction;  
    2.   
    3.   
    4.   
    5. private Stringformname;  
    6.   
    7.   
    8.   
    9. private Stringadduser_username;  
    10.   
    11.   
    12.   
    13. private Stringadduser_password;  
    14.   
    15.   
    16.   
    17. private Stringadduser_submit;  
    18.   
    19.   
    20.   
    21. private Stringtext;  
    22.   
    23.   
    24.   
    25. private Stringsubmit;  
    26.   
    27.   
    28.   
    29. public StringgetAdduser_username() {  
    30.   
    31.        returnadduser_username;  
    32.   
    33. }  
    34.   
    35.   
    36.   
    37. publicvoidsetAdduser_username(String adduser_username) {  
    38.   
    39.        this.adduser_username = adduser_username;  
    40.   
    41. }  
    42.   
    43.   
    44.   
    45. public StringgetAdduser_password() {  
    46.   
    47.        returnadduser_password;  
    48.   
    49. }  
    50.   
    51.   
    52.   
    53. publicvoidsetAdduser_password(String adduser_password) {  
    54.   
    55.        this.adduser_password = adduser_password;  
    56.   
    57. }  
    58.   
    59.   
    60.   
    61. public StringgetAdduser_submit() {  
    62.   
    63.        returnadduser_submit;  
    64.   
    65. }  
    66.   
    67.   
    68.   
    69. publicvoid setAdduser_submit(Stringadduser_submit) {  
    70.   
    71.        this.adduser_submit = adduser_submit;  
    72.   
    73. }  
    74.   
    75.   
    76.   
    77. public StringgetText() {  
    78.   
    79.        returntext;  
    80.   
    81. }  
    82.   
    83.   
    84.   
    85. publicvoidsetText(String text) {  
    86.   
    87.        this.text =text;  
    88.   
    89. }  
    90.   
    91.   
    92.   
    93. public StringgetSubmit() {  
    94.   
    95.        returnsubmit;  
    96.   
    97. }  
    98.   
    99.   
    100.   
    101. publicvoidsetSubmit(String submit) {  
    102.   
    103.        this.submit =submit;  
    104.   
    105. }  
    106.   
    107.   
    108.   
    109. public StringgetFormaction() {  
    110.   
    111.        returnformaction;  
    112.   
    113. }  
    114.   
    115.   
    116.   
    117. publicvoidsetFormaction(String formaction) {  
    118.   
    119.        this.formaction =formaction;  
    120.   
    121. }  
    122.   
    123.   
    124.   
    125. public StringgetFormname() {  
    126.   
    127.        returnformname;  
    128.   
    129. }  
    130.   
    131.   
    132.   
    133. publicvoidsetFormname(String formname) {  
    134.   
    135.        this.formname =formname;  
    136.   
    137. }  
    138.   
    139.   
    140.   
    141.   
    142.   
    143. @Action(value= "showadd", results = { @Result(name ="success", type = "freemarker", location = "/flt/adduser.ftl") })  
    144.   
    145. public Stringshowadd() throws Exception {  
    146.   
    147.        /* 
    148.  
    149.         * FreeMarkerUtil freeMarkerUtil=newFreeMarkerUtil(); 
    150.  
    151.         * Map<String,Object> root=newHashMap<String,Object>(); //為數據模型添加值 
    152.  
    153.         * root.put("formaction","adduser"); root.put("formname", "adduser"); 
    154.  
    155.         *  
    156.  
    157.         * FileWriter out=new FileWriter(newFile("/adduser.ftl")); 
    158.  
    159.         * freeMarkerUtil.printFile("/flt","adduser.ftl",root, out); 
    160.  
    161.         */  
    162.   
    163.        setFormaction("adduser");  
    164.   
    165.        setFormname("adduser");  
    166.   
    167.        setAdduser_password("password");  
    168.   
    169.        setAdduser_submit("adduser_submit");  
    170.   
    171.        setAdduser_username("username");  
    172.   
    173.        setText("text");  
    174.   
    175.        setSubmit("submit");  
    176.   
    177.        return"success";  
    178.   
    179. }  

     

     

            這樣我們運行就能夠看到我們的一個添加頁面,需要填入用戶名和密碼。

    posted on 2013-06-22 10:22 void 閱讀(905) 評論(0)  編輯  收藏 所屬分類: Struts2Freemarker

    主站蜘蛛池模板: 免费播放春色aⅴ视频| 日韩精品无码区免费专区| 免费亚洲视频在线观看| 成人亚洲国产va天堂| 成人免费无遮挡无码黄漫视频| 亚洲人色大成年网站在线观看| 最近免费中文字幕mv电影| 亚洲黄色三级视频| 18禁美女裸体免费网站| 亚洲一区在线免费观看| 免费视频中文字幕| 日韩精品亚洲专区在线影视| 免费一级毛片正在播放| 香蕉视频在线免费看| 亚洲Av无码精品色午夜| 在线播放免费播放av片| 免费国产真实迷j在线观看| 国产亚洲欧美在线观看| 亚洲国产精品无码久久久久久曰 | 一边摸一边桶一边脱免费视频 | 国产又大又长又粗又硬的免费视频| 亚洲日本在线观看视频| fc2成年免费共享视频网站| 亚洲精品一品区二品区三品区| 国产日韩AV免费无码一区二区 | 亚洲色婷婷综合开心网| 在线涩涩免费观看国产精品| 亚洲福利一区二区三区| 在线观看免费宅男视频| 国产精品1024在线永久免费| 亚洲综合精品一二三区在线| 免费一级毛suv好看的国产网站| 亚洲色精品aⅴ一区区三区| 91禁漫免费进入| WWW亚洲色大成网络.COM| 亚洲精品tv久久久久久久久| 91嫩草国产在线观看免费| 青青草97国产精品免费观看| 久久精品国产亚洲AV香蕉| 蜜臀91精品国产免费观看| 免费在线观看一级片|