Struts2的配置 struts.xml Action详解

struts.xml中的package的配置

name:逻辑上的包名

namespace:命名空间,用来区分同意struts下的相同action(注意是一种逻辑上的的路径) 默认 /

extends: 继承某个配置文件 默认 struts-default

具体使用过程中要注意,有与命名空间的命名,我们要在相应的过程中加上对应的命名空间的路径,例如:

1
<s:form action="db/login.action" method="post">

此代码说明的就是将会去调用db命名空间下的login对应的action

标签的下的是物理路径(绝对路径),即指在项目中的实际位置,代码如下

1
<result name="success">/login/error.jsp</result>

struts.xml中的result的配置

对于action的配置我这里面只是简单的概括,具体很多细节性的东西我将专门写一篇博客,主要讲解的动态的对action进行配置属性有:

name:Action类的映射名称 默认值 success

class:Action类的完整路径

method:默认使用的execute()方法,如果要自定义触发方法,需要使用method自定义 默认值 execute

struts.xml配置过程中的注意信息

在实际开发的项目中,我们可能需要配置很多的action,有时候为了便于我们的分类,我们一般需要创建不同包下的struts-user.xml文件,不过最终我们的这些配置都是要导入进我们的struts.xml文件中。使用的标签和jsp编程中

struts.xml

1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
<include file="struts-user.xml"></include>
</struts>

struts-user.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
<constant name="struts.ui.theme" value="simple"></constant>
<package name="user" namespace="/db" extends="struts-default">
<action name="login" class="com.action.UserAction"
method="execude2">
<!--result下的路径是物理路径 -->
<result name="success">/login/success.jsp</result>
<result name="error">/login/error.jsp</result>
</action>
</package>
<!-- 包名不能相同 -->
<package name="usertemp" namespace="/temp" extends="struts-default">
<action name="login" class="com.action.UserAction"
method="execude2">
<!--result下的路径是物理路径 -->
<result name="success">/login/error.jsp</result>
<result name="error">/login/success.jsp</result>
</action>
</package>
</struts>

Action的动态结果的配置

通过通配符实现,不同的类响应不同的类中的方法:

1
2
3
<action name="*_*" class="com.action.{1}Action" method="{2}">
<result >/{2}.jsp</result>
</action>

UserAction.Java

1
2
3
4
public class UserAction extends ActionSupport {
private String nextResult;
...
}

Struts2.xml

1
2
3
<action name="user" class="action.UserAction">
<result>/{nextResult}</result>
</action>