void

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

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

           

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

           

                  看過struts2結(jié)構(gòu)圖的朋友們都應(yīng)該知道struts2的展現(xiàn)層不再是像struts1那樣單純的jsp了,它能夠集成很多展現(xiàn)層技術(shù),例如今天說的freemarker等等。

           

           

           

                  既然上面都說到了freemarker僅僅是一個展現(xiàn)層技術(shù),那么我們自然會想到,freemarker應(yīng)該和struts2中配置的action標(biāo)簽中的result有關(guān)系,其實就是這樣的,我們知道struts2的result標(biāo)簽就是匹配跳轉(zhuǎn)路徑控制展示層的作用,所以我們利用struts2和freemarker的最近本操作就是配置result標(biāo)簽,把原先的result標(biāo)簽的type變成freemarker,跳轉(zhuǎn)的文件變成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的類型和跳轉(zhuǎn)文件類型即可。

           

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

           

                 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>  

           

           

                對應(yīng)的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>(); //為數(shù)據(jù)模型添加值 
          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 閱讀(907) 評論(0)  編輯  收藏 所屬分類: Struts2Freemarker

          主站蜘蛛池模板: 平武县| 新民市| 柳江县| 鹤庆县| 深州市| 天长市| 北流市| 卢氏县| 宁德市| 南漳县| 浦江县| 玉山县| 惠安县| 固阳县| 龙胜| 宜章县| 绍兴市| 甘孜县| 通化县| 广州市| 静宁县| 阿城市| 兴业县| 通州区| 逊克县| 赤壁市| 平安县| 保定市| 张家川| 宁城县| 本溪市| 额尔古纳市| 霸州市| 临猗县| 河南省| 东明县| 宜丰县| 海林市| 故城县| 广汉市| 怀远县|