structs2-运用Action
来源:互联网 发布:war3 for mac打不开 编辑:程序博客网 时间:2024/06/05 19:25
要使用Action,是使用配置+实现类的模式。
第一步:建立一个类名字尾部为Action,例如LoginAction。可选择让其实现Action接口或继承ActionSupport。
第二步:在这个类中实现控制方法,该方法约定返回一个字符串结果。
第三步:配置struct.xml文件
public interface Action{public static final String ERROR = "error";public static final String INPUT = "input";public static final String LOGIN = "login";public static final String NONE= "none";public static final String SUCCESS = "success";public String execute() throws Exception;}
尽管实际使用中Action类只需要将名字定义为*Action的样子,但是Structs2定义了Action接口为了使用户使用更规范。
public class ActionSupport
extends Object
implements Action, Validateable, ValidationAware, TextProvider, LocaleProvider, Serializable
ActionSupport类实现了包括Action的众多接口的默认方法,默认方法例如获取国际化信息的方法,数据校验的方法,默认的处理用户请求的方法,如果让开发者继承ActionSupport类,能大大简化Action开发。
如:
package com.action;public class UserAction extends ActionSupport{ private int userId;private String userName;private String userPw;private String userRealname;private String userAddress;private String userSex;private String userTel;private String userEmail;private String userQq;private String userType;private String message;private String path;private TUserDAO userDAO;private TStuDAO stuDAO;public String userAdd(){return "succeed";}public String userEdit(){return "successAdd";}public String userLogin(){return "succeed";}/*省略ser() get()方法}然后就是配置相应的Action信息:
Structs2 使用包来组织Action,因此,将Action定义在包定义下完成定义Action通过<package../>下的<Action../>子元素来完成。
<package../>有如下几个属性:
name:这是一个必需属性,该属性指定该包的名字,该名字是其被其它包引用的key
extends:该属性是一个可选属性,该属性指定该包继承其它包。继承其他包意味着可以继承其他包中的Action定义,拦截器定义。
namespace:可选属性,定义该包的命名空间
abstract:可选属性,指定该包是否是个抽象包。抽象包中不能包含Action定义
struts-default包是struts内置的,它定义了很多拦截器,而Struts2很多核心的功能都是通过这些内置的拦截器实现,如:从文件上传、数据验证、自动封装前台传过来的参数等等。我们写的包继承了struts-default包才能使用struts2为我们提供的这些功能,所以通常我们写的每个包都应该继承它。
<action../>的常用属性:
name:必需属性,该属性指定此Action的名字,习惯上此名字为Action的方法名。调用时此名字为被引用的key.
class:必需属性,指定这个Action类的URL。
method:可选属性,执行Action类中指定的方法调用,假如不指定则默认使用Action的execute()方法。
<struts> <package name="lunwen186" extends="struts-default"> <action name="userAdd" class="com.action.UserAction" method="userAdd"> </action> <action name="userEdit" class="com.action.UserAction" method="userEdit"> </action> <action name="userLogin" class="com.action.UserAction" method="userLogin"> </action> </package></struts>
0 0
- structs2-运用Action
- Structs2 action 通配符
- Java Structs2 动态Action
- structs2之Action与ActionContext
- Structs2中Json插件的Action配置
- structs2 action传递参数(中文乱码)
- structs2 中action 获取request session response
- structs2 action向jsp传递list
- 【JavaWeb Structs2学习】 用Action接受参数
- structs2学习(二):使用默认action
- structs2
- Structs2
- structs2
- structs2
- structs2
- Java 怎样运用Action
- JS+Structs2实现页面动态List传入action
- 怎么在structs2 取得action里面的内置对象
- 递归分治
- configure: error: *** POSIX caps library not found
- mxnet 编译后运行的第一个demo train_mnist.py时的错误
- android开发_1_001
- 搬圆桌
- structs2-运用Action
- 解决Kubuntu 17.04和Ubuntu17.04无法安装网易云音乐 netease-cloud-music : 依赖: libqt5libqgtk2 但无法安装它
- mina3源码分析,启动过程分析(一)
- win10,win8 管理员账户没有权限,无法访问文件夹
- JBoss页面部署消息队列及相关例子
- spring+springmvc+hibernate整合后,form表单传值问题
- android ScrollView中嵌套GridView,ListView只显示一行的解决办法
- (转)c++字符集的问题
- android studio 的aidl 文件创建步骤