Struts2與Freemarker的配置方法(附源碼和插件)

Freemarker是模板引擎,也能夠說是一種表現層的框架,它有本身的模板指令,開發者若是不熟悉這些語法,很難進行表現層的開發。Struts2框架技術對Freemarker作了很好的支持,開發人員只要熟悉Struts2的標籤便可進行開發Freemarker模板文件,若是您還不熟悉具體的Struts2及標籤應用請參考其餘文獻資料,本文主要闡述Struts2與Freemarker的配置方法。html

本文所述開發環境爲: Eclipse 3.3.2+ MyEclipse 6.0 +JDK 1.5 +Tomcat 6.0。
1、     安裝開發Freemarker模板文件插件
Freemarker自身提供了一個編輯模板文件的 Eclipse插件FreeMarkerIDE-1.0.0.GA.zip,該插件具備錯誤提示,與高亮顯示等功能,您能夠到 freemarker.sourceforge.net下載,也可經過Eclipse IDE   自帶的功能完成相關插件的安裝,插件更新地址爲: www.freemarker.org/eclipse/update. ,插件具體安裝配置過程請參考其餘文獻資料。
我看到不少網友對改插件的評價是褒貶不同,本人認爲還能夠,因此介紹給你們。
你也可使用其它插件,只要能幫助你開發 Freemarker模板文件便可。
2、     配置工程開發環境
1. 新建 Web工程freemarkerWeb
2. 到 http://struts.apache.org, 下載struts-2.0.11.2-all.zip解壓縮並導入開發所需相關jar包到lib目錄下。Jar包:struts2-core-2.0.11.2.jar,xwork-2.0.5.jar,ognl-2.6.11.jar,freemarker-2.3.8.jar,commons-logging-1.0.4.jar
3. 解壓縮 struts2-core-2.0.11.2.jar複製META-INF/struts-tags.tld複製到工程WEB-INF目錄下
4. 配置 web.xml文件
<filter>
    <filter-name>struts2</filter-name>
    <filter-class>
org.apacher.sturts2.dispatcher.FilterDispatcher
</filter-class>
</filter>   
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-parttern>/*</url-parttern>
</filter-mapping>
      <servlet>
        <servlet-name>JspSupportServlet</servlet-name>
        <servlet-class>
            org.apache.struts2.views.JspSupportServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    注意:要想在 Freemarker中使用Struts2標籤必須配置以上加粗部分代碼到web.xml文件中。
5. 建立 struts.xml文件
<struts>
 <package name="struts" extends="struts-default">
<action name="userLogin" class="com.test.action.LoginAction" method="userLogin">
                <result name="success" type="freemarker">
                    /WEB-INF/templates/user.ftl
                </result>
            </action>
    </package>
</struts>
注意:
A:斜體字部分的代碼是根據不一樣的應用而配置的,斜體部分的代碼爲 freemarkerWeb應用的代碼。
B:<reslutl>元素的type 屬性必須設置爲freemarker,這是由於Freemarker模板文件必須由Freemarker模板引擎來解析,而Struts2內部實現了 Freemarker模板引擎,但咱們必須聲明返回結果類型爲freemarker才能夠
至此 Struts2 Freemarker 的配置已經完成,能夠進行開發了 .
3、     完成Struts2與Freemarker的配置開發工程
建立 LoginAction.java
  ……
private Log log=LogFactory.getLog(LoginAction.class);
 private String username;
 private String password;
 /**
   * 登陸處理
   * @return
   * @throws Exception
   */
 public String userLogin() throws Exception{
     log.info("執行了登陸方法 userLogin()");
     return SUCCESS;
 }
   省略相應 (getter,setter方法)
     …
建立登陸頁面 index.jsp
    <s:form action="userLogin">
        登陸名: <s:textfield name="username"/><br>
        密碼: <s:textfield name="password"/>
        <s:submit value="登陸 " />
 </s:form>
建立結果頁面: user.ftl
<#--
<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld "]>
 -->
<html>
    <body>
    歡迎 <@s.property value="username"/>登陸!
    </body>
</html>
注意:
A.以上註釋中的內容能夠去掉,由於 Struts2默認引入該標籤庫
B. Struts2標籤在 JSP 頁面中的寫法與在Freemarker模板文件中的寫法不一樣。Freemarker模板文件是以<@s.tag>開始,以</@s.tag>結束
JSP文件中是以 <s:tag>開始 以</s:tag>結束。應用時<tag>替換爲Struts2的標籤名稱。
 
好了,咱們如今將 freemarkerWeb工程部署到Tomcat6.0服務器上,訪問http://loacalhost:8080/freemarkerWeb/index.jsp後輸入用戶名,密碼,登陸便可看到歡迎XX登陸!
OK,大功告成! Struts2與Freemarker的配置開發工程就這樣完成了。
 
最後,須要你們須要注意的是, Freemarker模板文件的處理,經過Web容器是沒法直接處理的,所以不要讓用戶直接訪問模板文件。在開發過程當中,咱們能夠將Freemarker文件直接放到Web工程的 WEB-INF目錄或其子目錄下,並在相應的struts-*.xml文件中配置type="freemarker" 來輸出模板。
經過上面的講解,但願能你們能對 Struts2與Freemarker的配置方法有所瞭解及應用,不足之處請你們批評指正。
相關文章
相關標籤/搜索