package标签配置
<package name="day01" namespace="/" extends="struts-default">
<action name="input">
<result>input.jsp</result>
</action>
<action name="product-save" class="com.day01.Product" method="execute">
<result name="success">details.jsp</result>
</action>
</package>
将相关的一组action放在一个package中。
namespace请求的时候需要加上。
配置Struts2可以受理的请求的扩展名
<constant name="struts.action.extension" value="action,do"></constant>
解析:1.org.apache.struts2包下的default.properties中配置了Struts2应用的一些常量,包括struts.action.extension
2.可以在struts.xml文件中以常量配置的方式修改默认配置
action标签配置
默认调用的class是com.opensymphony.xwork2.ActionSupport,method的默认值为execute。
ActionSupport
1). ActionSupport 是默认的 Action 类: 若某个 action 节点没有配置 class 属性, 则 ActionSupport 即为
待执行的 Action 类. 而 execute 方法即为要默认执行的 action 方法
2). 在手工完成字段验证, 显示错误消息, 国际化等情况下, 推荐继承 ActionSupport.
result标签配置
1). result 是 action 节点的子节点
2). result 代表 action 方法执行后, 可能去的一个目的地
3). 一个 action 节点可以配置多个 result 子节点.
4). result 的 name 属性值对应着 action 方法可能有的一个返回值.
可以通过result配置多个返回页面(返回值为哪个name就执行哪一个(默认是请求转发)):
<result name="success" type="dispatcher">/success.jsp</result>
<result name="login">/login.jsp</result>
<result name="index">/atguigu/testAction.do</result>
5). result 一共有 2 个属性, 还有一个是 type: 表示结果的响应类型
<result name="login" type="redirect">/login.jsp</result>
6). result 的 type 属性值在 struts-default 包的 result-types 节点的 name 属性中定义.
常用的有 :
> dispatcher(默认的): 转发. 同 Servlet 中的转发. 只看到一次请求
> redirect: 重定向,两次请求
> redirectAction: 重定向到一个 Action,两次请求
> chain: 转发到一个 Action,只发一次请求
<action name="test" class="com.atguigu.struts2.action.TestResultAction" >
<result name="sucess" type="dispatcher">/login-success.jsp</result>
<result name="login" type="redirect">/Login.jsp</result>
<result name="index" type="redirectAction">
<param name="actionName">testAction</param><!--调用的action类名称-->
<param name="namespace">/test</param><!--命名空间,且必须存在test-->
</result>
<result name="index2" type="chain">
<param name="actionName">testAction</param>
<param name="namespace">/test</param>
</result>
</action>
<package name="testPackage" namespace="/test" extends="struts-default"><!--命名空间,且必须存在test-->
<action name="testAction" class="com.atguigu.struts2.action.TestAction">
<result>/test-aware.jsp</result>
</action>
</package>