Struts 之 通配符 路径匹配 常量用法 配置默认值

  1. 云栖社区>
  2. 博客>
  3. 正文

Struts 之 通配符 路径匹配 常量用法 配置默认值

loveincode 2016-04-25 11:34:27 浏览1093
展开阅读全文

Struts 框架学习

Action的开发的几种方式

方式1 : 继承ActionSupport     如果使用Struts校验功能,必须继承此类

方式2 : 实现Action接口

方式3 :不继承任何类,不实现任何接口

1、通配符:

  在Struts中配置信息,可以用*与{1} 可以优化配置

复制代码
public class UserAction {

    private String userName;

    public void setUserName(String userName) {
        this.userName = userName;
    }

    // Action中业务处理方法
    public String login() {
        System.out.println("UserAction.login()" + userName);
        return "login";
    }

    public String register() {
        System.out.println("register()" + userName);
        return "register";
    }
}
复制代码

 

复制代码
<package name="config" namespace="/user" extends="struts-default" abstract="false">
        
        <!-- 
        <action name="login" class="cn.itcast.a_config.UserAction" method="login">
            <result name="success">/index.jsp</result>            
        </action>
        <action name="register" class="cn.itcast.a_config.UserAction" method="register">
            <result name="success">/index.jsp</result>            
        </action>
         -->        
         
         <!-- 使用通配符优化上面的步骤 -->
         <!-- http://localhost:8080/struts02/user_login -->
         <action name="user_*" class="cn.itcast.a_config.UserAction" method="{1}">
            <result name="{1}">/{1}.jsp</result>            
        </action>
        
    </package>
复制代码

 

2、路径匹配原则

3、常量

struts-default.xml 文件中:

<!-- 1. 修改Struts默认的访问后缀 -->
    <constant name="struts.action.extension" value="action,do,"></constant>

 

复制代码
<struts>
    <!-- 一、全局配置 -->
    <!-- 0. 请求数据编码 -->
     <constant name="struts.i18n.encoding" value="UTF-8"/>
    <!-- 1. 修改Struts默认的访问后缀 -->
    <constant name="struts.action.extension" value="action,do,"></constant>
    <!-- 2. 修改xml自动重新加载 -->
    <constant name="struts.configuration.xml.reload" value="true"/>
    <!-- 3. 开启动态方法调用 (默认不开启)-->
    <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
    <!-- 4. 修改上传文件的最大大小为30M -->
    <constant name="struts.multipart.maxSize" value="31457280"/>
</struts>
复制代码

 

 

复制代码
<struts>

    <package name="config2" namespace="/" extends="struts-default">
    
        <!-- 动态方法调用: http://locahost:8080/struts02/user!login 
        <action name="user" class="cn.itcast.b_config2.UserAction">
            <result name="success">/index.jsp</result>            
        </action>
        -->
            
       
        <!-- 通配符: http://locahost:8080/struts02/user_login -->
        <action name="user_*" class="cn.itcast.b_config2.UserAction" method="{1}">
        </action>
        
        <!-- 
        <action name="test" class="cn.itcast.b_config2.TestAction" method="execute">
            返回结果标记success对应的页面再当前action中没有配置,
            所以会去找全局配置有是否有success标记对应的页面
        </action>
         -->
         
        
        
        
        <!-- 什么情况不配置class? 即处理的aciton -->
        <!-- 答案: 当只是需要跳转到WEB-INF下资源的时候。 -->
         <action name="test2">
             <result name="success">/WEB-INF/index.jsp</result>
         </action>
        
    </package>    
    
</struts>
复制代码

 global-results 全局跳转视图 必须写在 action 之前

 

复制代码
<!-- 配置各项默认值 -->
         <!-- 
              name  只配置了访问路径名称
              class 默认执行的action在struts-default有配置
                      <default-class-ref class="com.opensymphony.xwork2.ActionSupport" />
              method  默认为execute
              默认的方法execute返回值为success,对应的页面去全局视图找。
              
-->
<action name="test"></action>
 
复制代码

 

网友评论

登录后评论
0/500
评论
loveincode
+ 关注