1、搭建 Struts2 的环境:
2、struts.xml详解
1)加入 jar 包: 复制 \lib 下的所有 jar 包到当前 web 应用的 lib 目录下.
2)在 web.xml 文件中配置 struts2的Filter(复制 \web.xml 文件中的过滤器的配置到当前 web 应用的 web.xml 文件中)
<!-- 配置struts2的Filter --><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>
3)添加 struts2 的配置文件 struts.xml(src下)
struts.xml的结构<package name="standard" extends="struts-default">
<action name="productInput" class="com.opensymphony.xwork2.ActionSupport" method="execute">
<result name="success" type="dispatcher">/WEB-INF/input.jsp</result>
</action>
</package>
2、struts.xml详解
1)默认的配置
<package name="standard" extends="struts-default"><action name="productInput" class="com.opensymphony.xwork2.ActionSupport" method="execute"><result name="success" type="dispatcher">/WEB-INF/input.jsp</result></action></package>等同于<package name="standard" extends="struts-default"><action name="productInput"><result>/WEB-INF/input.jsp</result></action></package>
2)result:
1). result 是 action 节点的子节点2). result 代表 action 方法执行后, 可能去的一个目的地3). 一个 action 节点可以配置多个 result 子节点.4). result 的 name 属性值对应着 action 方法可能有的一个返回值.
<result name="index">/index.jsp</result>
5). result 一共有 2 个属性, 还有一个是 type: 表示结果的响应类型6). result 的 type 属性值在 struts-default 包的 result-types 节点的 name 属性中定义.
> dispatcher(默认的): 转发. 同 Servlet 中的转发.> redirect: 重定向> redirectAction: 重定向到一个 Action。 注意: 通过 redirect 的响应类型也可以便捷的实现 redirectAction 的功能!
<result name="index" type="redirectAction">
<param name="actionName">testAction</param><param name="namespace">/atguigu</param>
</result>OR<result name="index" type="redirect">/atguigu/testAction.do</result>
> chain: 转发到一个 Action。 注意: 不能通过 type=dispatcher 的方式转发到一个 Action
只能是:<result name="test" type="chain">
<param name="actionName">testAction</param><param name="namespace">/atguigu</param>
</result>不能是:<result name="test">/atguigu/testAction.do</result>
3)关于 Struts2 请求的扩展名问题
1). org.apache.struts2 包下的 default.properties 中配置了 Struts2 应用个的一些常量2). struts.action.extension 定义了当前 Struts2 应用可以接受的请求的扩展名.3). 可以在 struts.xml 文件中以常量配置的方式修改 default.properties 所配置的常量.<constant name="struts.action.extension" value="action,do,"></constant>
4)通配符
通配符映射规则:通配符映射规则
- 若找到多个匹配, 没有通配符的那个将胜出
- 若指定的动作不存在, Struts 将会尝试把这个 URI 与任何一个包含着通配符 * 的动作名及进行匹配
- 被通配符匹配到的 URI 字符串的子串可以用 {1}, {2} 来引用. {1} 匹配第一个子串, {2} 匹配第二个子串…
- {0} 匹配整个 URI
- 若 Struts 找到的带有通配符的匹配不止一个, 则按先后顺序进行匹配
- * 可以匹配零个或多个字符, 但不包括 / 字符. 如果想把 / 字符包括在内, 需要使用 **. 如果需要对某个字符进行转义, 需要使用 \.