Struts2学习笔记之action

1.为action创建多个方法进行对应,可以减少Action类的数量,不能减少配置的数量

   <!-- action可以配置多个方法,减少了action类的数量,不能减少配置的数量-->
    <action name="user_add" class="org.sgcc.meng.action.UserAction" method="add">
    <result name="success">/WEB-INF/User/add.jsp</result>
    </action>
     <action name="user_addInput" class="org.sgcc.meng.action.UserAction" method="addInput">
    <result name="success">/WEB-INF/User/addInput.jsp</result>
    </action>
     <action name="user_list" class="org.sgcc.meng.action.UserAction" method="list">
    <result name="success">/WEB-INF/User/list.jsp</result>
    </action>

2.可以写一个action,之后通过调用的时候判断调用哪个方法
调用方式:在url后边增加”!method” 或者“?method:methodName”
user|add
user?method:list

 <!-- 设置action,通过调用时确定是哪个方法 -->
    <action name="user" class="org.sgcc.meng.action.UserAction">
    <result name="add">/WEB-INF/User/add.jsp</result>
    <result name="addInput">/WEB-INF/User/addInput.jsp</result>
    <result name="list">/WEB-INF/User/list.jsp</result>
    </action>

此方法减少了action的配置,但是依然增加了大量通配符的配置

3.基于通配符的配置
开发中一般使用通配符的方式进行访问
访问的时候
User_add.action

<!-- 基于通配符的配置开发中常用 -->
    <action name="*_*" class="org.sgcc.meng.action.{1}Action" method="{2}">
        <result name="success">/WEB-INF/{1}/{2}.jsp</result>
    </action>

二、常量的配置
可以通过标签来设置一些常量的配置,这些常量可以通过struts的jar包来查询
通常配置访问路径

<!-- 访问后缀为action,do -->
    <constant name="struts.action.extension" value="action,do"></constant>
    <!-- 修改struts文件不用重新启动 -->
    <constant name="struts.configuration.xml.reload" value="true"></constant>

三、全局结果集配置

<package name="default" namespace="/" extends="struts-default">
    <global-results>
    <result name="error">/error.jsp</result>
    </global-results>

四、参数传递
1.通过在action中添加属性,实现get和set方法

    private String userName;
    private String password;

    public String add(){
        return "success";
    }
    public String addInput(){
        return "r_list";
    }
    public String list(){
        this.password="123";
        this.userName="张三";
        return "success";
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }

2.通过ActionContext.getContext().put(),完成值的传递
注意:在页面使用s:property访问数据的时候需要加#,在2.3之后如果ActionContext中的数据类型为String时不用加#

ActionContext.getContext().put("aaa", 1234567);
        ActionContext.getContext().put("bbb", 1234);
        //页面取值
        // <s:property value="#aaa"/>--------<s:property //value="#bbb"/>

3.使用servlet的Api来传值

    ServletActionContext.getRequest().setAttribute("name", "张三");
    //<s:property value="#request.name"/>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值