我是靠谱客的博主 称心硬币,最近开发中收集的这篇文章主要介绍Struts2-----Action的定义方法------接收用户提交数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Action的定义方法:     模型,多实例单线程 

    1、不实现任何接口,不继承任何类(Object)    体现了Struts2框架的轻侵入性

        public class MyAction{
            public String execute()throws Exception{ } 方法签名不能有任何修改
        }
        
    2、实现Action你接口
         5大常量
            ERROR执行出错,跳转到错误处理页
            INPUT跳转输入页
            NONE执行没有任何问题,但是不跳转任何页面
            SUCCESS执行正常,跳转到成功页
            LOGIN跳转到登录页面
        1个抽象方法
            execute()
            
    3、继承ActionSupport,推荐使用
        支持Action接口,所以5大常量可以直接使用
        支持服务器端数据校验
            .addFieldError  addActionError
        支持国际化和本地化处理
        
    为了实现类内高内聚,类间弱耦合,所以可以将一个实体的相关CRUD定义在一个Action类
        自定义方法名,但是签名必须和execute类似,例如  public String add()throws Exception{}
        
        配置:
            <action name="user_*" class="com.yan.UserAction" method="{1}">
                *可以指代任意长度的任意字符,可以匹配user_add user_del user_detail...
                {1}表示和*匹配的具体内容,例如匹配user_add则{1}表示add
                
            特殊定义<action name="*_*" class="com.yan.{1}Action" method="{2}">
                例如User_add.action第一个*表示User,第二个*表示add,则这个配置实际上就成了
                <action name="User_add" class="com.yan.UserAction" method="add">
                这里注意User受字母大写
                
            特殊定义<action name="*">如果没有定义class属性,则默认class是ActionSupport,*可以匹配任何内容
                <action name="*">
                    <result>/{1}.jsp  表示使用abc.action不需要额外定义对应的Action类,直接跳转到同名的jsp
                    
                            
Action如何接收用户提交数据
    1、属性驱动
        页面<input name="username"/>
        Action类  private String username;  属性名称和提交参数的名称一致
            如果需要则自动进行类型转换,如果转换失败则自动跳转input进行报错
            
    2、模型驱动,实现一个ModelDriven接口
        public class UserAction extends ActionSupport implements ModelDriven<UserBean> {
            private UserBean user=new UserBean();没有对应的get/set方法    
            public UserBean getModel() {
                return user;
            }
        }
        页面<input name="username"/>  username对应user中的username属性
            页面输入域名称对应模型中的属性名即可
            
    3、对象驱动   严格来说这不是struts2提供的功能,是OGNL提供的功能
        public class UserAction extends ActionSupport {
            private UserBean user=new UserBean();//可以new也可以不new,这里需要get/set方法
            
        提交数据时应该为"对象名称.属性名"的方式,例如user.username=zhangsan&user.password=123456    

最后

以上就是称心硬币为你收集整理的Struts2-----Action的定义方法------接收用户提交数据的全部内容,希望文章能够帮你解决Struts2-----Action的定义方法------接收用户提交数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部