Struts2学习总结(五):ActionContext,DomainModel,ModelDriven
来源:互联网 发布:博爱社区新域名 编辑:程序博客网 时间:2024/04/29 22:44
一,实现与Servlet API交互
ActionContext对象,是Action执行的上下文,其常用的API方法如下:
public static ActionContext getContext() //实例化ActionContext
在Struts2的API中,ActionContext的构造方法需要传递一个Map类的上下文对象,应用这个方法非常不方便,所以使用getContext()方法进行创建。getContext是一个静态方法,可以直接调用,返回值就是ActionContext
public Object get(Object key) //获取Map类型的request
入口参数是Objcet类型的值,获取request可以将此值设置成request(Map request=ActionContext.getContext.get("request");)
public Map getSession() //获取Map类型的session
返回的是Map对象,这个Map对象的范围将作用于HttpSession范围
public Map getApplication()--获取Map类型的Application
返回的是Map对象,这个Map对象的范围将作用于ServletContext范围中
二,DomainModel
域模型DomainModel: 将一些属性信息封装成一个实体对象。
代码:
public class UserAction extend ActionSupport{ private User user; public String execute() throws Exception { return SUCCESS; } public void setUser(User user) { this.User=user; }}
在提交请求时:
<s:form action="userAction" method="post"> <s:textfiled name="user.name" label="用户名”><./s:textfiled> </s:form>
三,驱动模型ModelDriven:
在DomainModel模式中,Action对象可以通过直接定义实例对象的引用来调用实体对象进行相关操作,但要求请求参数必须指定参数对应的实体对象。例如上面代码的user.name。为了操作简单,Struts2提供另一种方式:ModelDriven是Struts2框架的API提供的一个接口(应用了泛型),Action对象可以通过实现此接口获取指定的实体对象。获取的方式是实现ModelDriven接口提供的getModel()方法进行获取。
public Object getModel(){ return null; }
处理流程:
1.实例化Action对象(实体对象)
2.判断Action对象是否实现了ModelDriven接口
3.实现了,调用getModel()方法来获取实体对象模型,在获取实体对象后将其返回。
应用ModelDriven的顺序图
代码:public class LoginAction extends ActionSupport implements ModelDriven<User>{ private static final long serialVersionUID=-6434128483294080524L; //这里必须要new private User user=new User(); public String login() throws Exception{ //TODOAuto-generatedmethodstub return SUCCESS; } //这里是实现接口方法 @Override public User getModel(){ //TODOAuto-generatedmethodstub //别忘记了,要把返回值写上哦 return user; } }
在提交请求时:
<s:form action="userAction" method="post"> <s:textfiled name="name" label="用户名”><./s:textfiled> </s:form>注意:在UserAction类中的user属性必须进行初始化操作,否则,在getModel()方法中获取的实体对象时,会出现空指针异常。
在ModelDriven使用getModel()方法后,将这个对象压入到ValueStack栈中
- Struts2学习总结(五):ActionContext,DomainModel,ModelDriven
- Struts2(五) ActionContext
- Struts2学习——(五)ModelDriven使用方法及机制学习
- Struts2中action接收参数的DomainModel、ModelDriven以及Preparable接口
- Struts2学习之Action接收参数方法二(用DomainModel接收参数(模型驱动))
- struts2 传值之2域模式(DomainModel)
- struts2 ModelDriven
- struts2--ModelDriven
- Struts2--ModelDriven
- struts2 modeldriven
- Struts2学习笔记三ModelDriven的使用
- struts2使用DomainModel接收参数
- struts2用DomainModel接收参数
- struts2用DomainModel接收参数
- Struts2用DomainModel接收参数
- Struts2 用DomainModel接收参数
- struts2 用DomainModel接受参数
- struts2的domainmodel接受参数
- isAlive()方法
- C语言程序设计:10个评委打分,去掉一个最低分和一个最高分,输出平均分
- Floodligh Web UI显示的host比实际多且不会被清除的原因及解决方法
- python字符串连接的N种方式
- opencv出现不能运行release版本的问题
- Struts2学习总结(五):ActionContext,DomainModel,ModelDriven
- Java web常见的错误代码
- java基础之流程控制与方法
- Java中匿名内部类的工厂方法使用
- java基础教程:集合之ArrayList(28)
- 解决 Plugin with id 'com.github.dcendents.android-maven' not found.
- Windows系统的MBR磁盘分区--MBR的结构和作用(四)之扩展分区EBR
- Struts2
- javascript版本的最长公共子序列