struts2 视图发请求到Action

来源:互联网 发布:文字办公软件 编辑:程序博客网 时间:2024/05/29 14:57

Struts2通过配置action标签来把用户请求连接到Action 控制层的方法中

<struts>   <package name="pack001" extends="struts-default">         <!--name:和用户请求保持一致-->         <!--class: 类的路径名-->         <!--method:class中的方法名-->        <action name="login" class="com.demo.action.LoginAction"            method="login">            <result name="success">/WEB-INF/pages/success.jsp</result>        </action>    </package></struts>
<!-- package元素 --><!-- name:package名称 唯一性 基本一个action类对应一个package --><!-- namespace:定义package的名称空间,该命名空间影响到url的地址 如namespace值为/test 那么访问地址:http://localhost:8085/Struts2Demo/test/xxx.action --><!-- abstract:package的属性是否抽象抽象的package不能定义action 值为true/false --><!-- extends:继承的父package名称 --><package name="001pck" extends="struts-default"></package>

1. Action搜索顺序

http://localhost:8085/Struts2Demo/aaa/bbb/ccc/login.action的访问顺序
第一步:根据包的namespace 判断当前package包(/aaa/bbb/ccc)是否存在。

<package name="001pck" namespace="/" extends="struts-default">      <action name="login" >        <result>/success.jsp</result>        </action></package>

第二步:如果这个包存在,就去这个包查找login.action.如果action存在则执行action.如果action不存在,报错或者执行默认action
第三步:如果包不存在,就去判断它的上一级包(/aaa/bbb)包是否存在,重复第二步,直到根目录/

2. 动态方法调用

<package name="001pck" namespace="/users" extends="struts-default">    <!-- 使用通配符实现一个action对应多个请求,以免action太多 -->    <!-- 访问路径为Dynamic_add 就会执行DynamicAction类中的add方法 -->    <!-- 访问路径为Dynamic_ 或者访问路径为Dynamic_execute 就会执行DynamicAction类中的execute方法 -->    <action name="*_*" class="action.{1}Action" method="{2}">        <result name="success">/success.jsp</result>        <result name="failure">/failure.jsp</result>             </action></package>

3. 指定多个配置文件
1.创建配置文件test.xml
2.在struts.xml配置文件中 引用这个配置文件

<struts>    <!-- 1.引用其它配置文件 -->    <include file="test.xml" /></struts>   

4. 配置 默认Action

<package name="002pck" namespace="/" extends="struts-default">    <!-- 4.定义默认action 如果struts没有用户定义的action名称,自动跳转到改默认定义的action中 -->    <default-action-ref name="index"></default-action-ref>    <action name="index">        <result>/WEB-INF/pages/error.jsp</result>    </action></package>

5. 修改struts后缀

<struts>     <!-- 1.修改struts2后缀为空 -->    <constant name="struts.action.extension" value=""></constant>    <!-- 2.修改struts2的后缀 为do; -->    <constant name="struts.action.extension" value="do"> </constant>    <!-- 3.设置多个后缀 修改struts2的后缀为do或者test -->    <constant name="struts.action.extension" value="do,test"></constant></struts>   

6. 指定配置文件的编码

<struts><!-- 指定配置文件的编码 -->   <constant name="struts.i18n.encoding" value="UTF-8"></constant></struts>
原创粉丝点击