<?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>
<!-- 創建包default,繼承struts-default -->
<package name="default" extends="struts-default">
<!-- 名為login的Action,實現類為LoginAction -->
<action name="login" class="com.action.LoginAction">
<!-- redirectAction返回類型 -->
<result type="redirectAction">
<!-- Action名參數 -->
<param name="actionName">userLogin</param>
<!-- 參數名 -->
<param name="username">${username}</param>
<!-- 命名 空間參數-->
<param name="namespace">/user</param>
</result>
<!-- 返回值為error, redirectAction類型,重定向到名為error的Action-->
<result name="error" type="redirectAction">error</result>
</action>
<!-- 名為error的Action -->
<action name="error">
<result>/error.jsp</result>
</action>
</package>
<!-- 名為user的Action,命名空間為/user -->
<package name="user" extends="struts-default" namespace="/user">
<!--名為userLogin的Action -->
<action name="userLogin" class="com.action.UserAction">
<result>/hello.jsp</result>
</action>
</package>
</struts>
其中hello.jsp 位於webroot 下。${username} 中的username 對應於login中的屬性值,
即由頁面傳過來的值,而param 中 name="username" 中的username 對應於userLogin中的屬性名稱,即給該名稱的屬性賦值。
在hello.jsp中獲取傳遞過來的屬性 就要用到ognl表達式
<s:property value="username">
================================================================
動態調用方法
在struts.xml 中增加靜態配置
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
增加后才可以動態調用方法;
動態調用方法首先在action得有對應的方法,被調用的方法與默認方法execute()類似
<action name="login" class="com.action.LoginAction">
<result>/result.jsp</result>
<result name="add">/add.jsp</result>
<result name="update">/update.jsp</result>
</action>
對象的請求
http://127.0.0.1:8080/helloworld/login!update.action