概述
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的定义方法------接收用户提交数据所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复