標籤:http java 使用 os io 檔案 for ar
Struts2 學習筆記
吃透最簡單的Helloword執行個體之後 ,接著再一一去研究 請求參數的接收與發送,參數的封閉,校正,result,struts2標籤庫這些最為核心的東西(其實這些也正是最常用的東西),經過這樣的學習,應該領會了一些Struts2的流程,接著再去閱讀相關文檔去瞭解Strust2的攔截器設計思想(這叫先使用再體會的學習方法),接著可以做一些針對於自訂攔截器的實現來深化對Struts2的認識。此時,你已經達到企業中使用的層級了,接下來就可以玩一些SSh整合
一、基本配置
1.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>
2.struts.xml
預設放在src檔案下
<!--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/helloworld
3.action類
屬性:name:是要處理的請求名
class:請求名所有對應的處理類
method:請求名所有對應的處理類中的方法(預設為excute)
<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 ActionSupport
for example:
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的前面-->