Struts2 學習筆記java
吃透最簡單的Helloword實例以後 ,接着再一一去研究 請求參數的接收與發送,參數的封閉,校驗,result,struts2標籤庫這些最爲核心的東西(其實這些也正是最經常使用的東西),通過這樣的學習,應該領會了一些Struts2的流程,接着再去閱讀相關文檔去了解Strust2的攔截器設計思想(這叫先使用再體會的學習方法),接着能夠作一些針對於自定義攔截器的實現來深化對Struts2的認識。此時,你已經達到企業中使用的級別了,接下來就能夠玩一些SSh整合web
1、基本配置
1.web.xml配置apache
<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>
2.struts.xml
默認放在src文件下
app
<!--package 相似java的包:用區分不一樣的請求 name:給包取的名字 (name屬性爲每一個package設置一個惟一的標識,這個標識在全部的package定義中不能重複) namespace:與請求地址的對應,對於action配置進行邏輯劃分 namespace="/" --http://localhost:8080/xxx/分部工程名/下的全部請求 namespace="/yy" --http://localhost:8080/xxx/yy分部工程名/下的全部請求 extends: 經過使用extends,你能夠指定本package繼承另一個package的全部的配置 --!>
<package name="my" namespace="/" extends="struts-default"> <action name="helloworld" > <result>/index.jsp</result> </action> </package>
訪問URL:localhost:8080/helloworldjsp
3.action類
屬性:name:是要處理的請求名
class:請求名全部對應的處理類
method:請求名全部對應的處理類中的方法(默認爲excute)ide
<action name="hello" calss="xxx.xxx.xxxxaction" method="execute">學習
Struts2 中有3中方式
a.普通java類,定義execute()方法
public class xxxAction
b.實現Action接口,重寫execute()方法
public class xxxAction implements Action
c.繼承java類ActionSupport
public class xxxAction extentds ActionSupporturl
for example:spa
public class MyDefineAction extends ActionSupport{ @Override public String execute() throws Exception { return "success";//咱們必須返回一個字符串給struts.xml識別 } }
對應struts2.xml 文件設計
<package name="my" namespace="/" extends="struts-default" method="execte"> <action name="hello" class="xxx.xxx.xxx.MyDefineAction> <result name="success">/index.jsp</result> </action> </package>
咱們相應的能夠在action中建立不一樣的method 實現不一樣的返回,到達不一樣的.jsp
不一樣action:name對應不一樣的method
三種方式: 配置struts.xml中的 action
a. 普通配置 域名爲 http://localhost:8080/Test/register(login)
<package name="my" namespace="/" extends="struts-default"> <action name="login" class="com.yc.action.UserAction" method="login"> <result name="success">login.jsp</result> </action> <action name="register" class="com.yc.action.UserAction" method="register"> <result name="success">register.jsp</result> </action> </package>
b. 動態配置 url爲: http://localhost:8080/Test/user!register
<!-- 動態配置 必要設置: struts.enable.DynamicMethodInvocation value="true"--> <action name="user" class="com.yc.action.UserAction02"> <result name="login_success">/login.jsp</result> <result name="register_success">/register.jsp</result> </action>
c. 約定配置 採用通配符 url爲: http://localhost:8080/Test/user_register
<action name="*_*" class="com.yc.action.{1}Action" method="{2}"> <result name="success">/{2}.jsp</result> </action>
d.當在對應的action中沒有匹配對result,那就到global-result去匹配
<global-results> <result name="fail">/index.jsp</result> </global-results>
<!--注意:global-results這個標籤只能放在package中action的前面-->