1. 入門級例子
根據上述瞭解,要開發第一個Struts2程序,我們需要完成下面的事項:
l 在web.xml中增加Filter(過濾器)配置
l 編寫Action
l 編寫Struts2的配置文件
l 編寫JSP
引入依賴包
我們的第一個Struts2應用程序,將基於最新的struts2版本:struts2.2.1版本。我們首先創建一個Web應用程序,引入下列依賴包:
這些依賴包,可以從Struts2.2.1的解壓目錄下的apps/struts2-blank-2.2.1.war文件中獲得。
Commons-fileupload和commons-io是文件上傳必須的依賴包。
Freemarker是struts2中的HTML相關標籤庫(taglib)的依賴包
Javassist和ognl是OGNL相關依賴包(OGNL是Struts2中的表達式語言,非常核心的依賴包)
Struts2-core就是struts2本身的類庫
Xwork-core是struts2非常核心的依賴包,正是它確定了請求處理的基本過程(它原本屬於webwork)。
在web.xml中增加過濾器配置
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter>
<filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> |
這個過濾器要過濾所有的請求。
編寫Action類
這個Action類已經是簡單到不能再簡單了!
public class FirstAction { public String hello(){ //每次調用,都是不同的對象! System.out.println("世界,你好"+this); return "success"; } } |
增加Struts2的配置文件
在類路徑的根目錄下,添加一個名爲struts.xml的文件,內容如下:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts> <package name="test" namespace="/test" extends="struts-default"> <action name="hello" class="cn.com.leadfar.struts2.action.FirstAction" method="hello" > <result name="success">/first.jsp</result> </action> </package> </struts>
|
Package中的name屬性是必須的,它可以是隨意的一個名稱,namespace是用來定義訪問Action的URL地址前綴(馬上就介紹如何訪問這個Action),它必須以“/”開頭;extends表示本配置是繼承另外一個package中的配置信息(struts-default是struts2中的默認package)。
Action配置中的name是用來定義如何訪問Action的;class當然就是對應的action類了;method表示訪問action的哪個方法;result定義的是這個action調用的返回值代表的是轉向哪裏!
編寫JSP
請隨意編寫一個JSP:first.jsp,並放置在web應用部署的根目錄下。
訪問Action
請在瀏覽器地址欄輸入:
http://localhost:[端口]/[Context Path]/test/hello.action |