struts2重点——ModelDriven】的更多相关文章

一.属性驱动 在目标 Action 类中,通过 setXxx() 方法来接收请求参数. 二.模型驱动 1.ParametersInterceptor 拦截器工作原理 ParametersInterceptor 会将请求参数赋值给值栈中栈顶的对象.默认情况下,栈顶对象是目标 Action 类. 2.modelDriven 拦截器工作原理 获取目标 Action 对象,判断是否实现了 ModelDriven 接口,若实现,则调用目标 Action 的 getModel(),将该方法返回的对象压入栈顶…
最近在学SSH框架,实战项目,用到了Struts2的ModelDriven<>接口,在这做一点记录 ModelDriven,意为模型驱动,意思是直接把实体类当成页面数据的收集对象 参考他人的博客和自己的实践,在这有一点笔记 以User,userAction,JSP页面为例,具体例子抄的他人博客,自己第一次接触博客不会弄格式 实体类User例子如下: public class User { private int id; private String username; private Stri…
今天做毕业设计,前台往后台赋值,习惯性的用了modelDriven.但是刚写完就奇怪它的机理是怎样的,它怎么知道我前台传的参是哪个Model的属性(之前用servlet都是手动),于是手贱的ctrl点进去,简单了解了一下 之前记得要使用modelDriven必须使用modelDriven的拦截器,但是我没加这个拦截器也实现了功能,看默认拦截器defaultStack原来所谓的默认拦截器就是一系列拦截器的集合 看modelDriven的源码可以看到 @Override public String…
它是Struts2种独有的一种接收用户输入的机制,想在项目中使用模型驱动 (ModelDriven)需要让Action实现com.opensymphony.xwork2.ModelDriven 接口,使用它 的getModel()方法来通知Struts2要注入的属性类型,并且声明属性时一定要实例化,但不需get, set方法.…
struts2 ModelDriven & Prepareable 拦截器 前面对于 Struts2 的开发环境的搭建.配置文件以及 Struts2 的值栈都已经进行过叙述了!这次博文我们讲解利用 Struts2 进行 CURD 操作,体验和 Servlet 的不一样,以此案例理解 ModelDriven 和 Prepareable 拦截器! 案例流程 获取数据库数据并将之显示在 employee-show.jsp 页面上 在 employee-show.jsp 页面可以添加员工信息到数据库,对…
首先struts.xml文件配置如下 默认拦截器设置为paramsPrepareParamsStack <package name="default" namespace="/" extends="struts-default"> <!-- 配置使用 paramsPrepareParamsStack 作为默认的拦截器栈 --> <!-- 修改 PrepareInterceptor 拦截器的 alwaysInvokeP…
在Struts 2中,提供了另外一种直接使用领域对象的方式,就是让action实现com.opensymphony. xwork2.ModelDriven接口.ModelDriven让你可以直接操作应用程序中的领域对象(模型对象),允许你在Web层和业务逻辑层使用相同的对象. ModelDriven接口中只有一个方法,如下: public T getModel() 该方法返回一个用于接收用户输入数据的模型对象. 在页面中,这个模型对象中的属性可以直接通过属性名来访问(如username),而不需…
http://www.cnblogs.com/luoyanli/archive/2012/11/20/2778361.html 我们可以根据Action属性的不同将它分为两类:Field-Driven(属性驱动)Action和Model-Driven(模型驱动)Action. 一.Field-Driven(属性驱动)Action,Action拥有自己的属性,这些属性一般是Java的基本类型.表单字段直接和Action的属性对应. 二.实现了modelDriven接口可以在action中直接获得例…
在Struts 2中,提供了另外一种直接使用领域对象的方式,就是让action实现com.opensymphony. xwork2.ModelDriven接口.ModelDriven让你可以直接操作应用程序中的领域对象(模型对象),允许你在Web层和业务逻辑层使用相同的对象. ModelDriven接口中只有一个方法,如下: @override public T getModel(); 该方法返回一个用于接收用户输入数据的模型对象. 在页面中,这个模型对象中的属性可以直接通过属性名来访问(如us…
页面表单 <form action="updateInput.action" method="post"> <input type="text" name="id"/> <input type="submit" value="查询"> </form> struts.xml配置 <action name="updateInpu…
一.值栈(ValueStack) 1.实现类:OGNLValueStack 2.对象栈:CompoundRoot(针对的是类级别的) (1)继承自 ArrayList —— 先进后出 (2)提供了栈的几个操作:peek() 返回栈顶对象,pop() 弹出栈顶对象,push() 将对象压入栈顶 (3)默认情况下,会将当前 Action 对象压入栈顶.通过这个 Action 对象,可以访问到该 Action 的所有属性以及错误信息. (4)获取方式 可以通过 ValueStack 对象的 getRo…
以UserAction为例,当UserAction实现了ModelDriven接口之后,与该接口相关的默认配置的拦截器会在拦截请求之后判断该请求是将要被UserAction处理而且UserAction实现了ModelDriven接口,因此就会在执行UserAction的相应方法之前,调用getModel方法,将UserAction中的Model类(比如Use)r的对象(假设为u)压入ValueStack中,作为root对象.这时候如果提交的表单或者url中传值过来,比如username,pass…
这篇文章是在上一篇文章(http://blog.csdn.net/u012116457/article/details/48194905)的基础上写的,大家可以先快速阅读一下上一篇. 这篇文章用来写一下struts中的模型驱动机制modelDriven 1.为什么要用modelDriven struts中Action 用来处理业务逻辑,如果向上一篇文章中的做法,把实体类的属性及get set方法都写在action中,会是代码比较混乱.根据分层的思想,我们可以将其封装为实体bean. 而要在act…
产生的异常如下: ognl.MethodFailedException: Method "setId" failed for object com.aliyun.pcitcAliyun.slb.model.Slb@2a8ba8ff [java.lang.NoSuchMethodException: com.aliyun.pcitcAliyun.slb.model.Slb.setId([Ljava.lang.String;)] at ognl.OgnlRuntime.callApprop…
在struts.xml中加入<param name="root">action</param> <result name="exist" type="json"> <param name="root">action</param> </result>…
用过struts1的人接触struts2的时候,通常会产生一个疑惑,明明struts1已经把action的form分开了,为什么struts2确把模型放在action中定义.其实这个方式只是想让action更加直观,但是如果表单数据过多的话,action类就会出现过于冗长,所以struts2的ModelDriven就要出来解决问题了.下面讲讲ModelDriven的机制 1.工作原理 ModelDriven的机制背后就是ValueStack.界面可以通过直接指定对象的属性名就能给对象进行赋值.…
方法一:struts2对ModelDriven模式的支持(模型驱动模式) Struts2可以采用类似于Struts1中的ActionForm方式收集数据,这样方式叫ModelDriven模式 Action需要实现ModelDriven接口,实现getModel()方法,返回Bean对象,这样struts2会通过getModel()方法拿到对象,使用set方法把数据填充到对象中 创建User类(Bean对象,包含geter方法和seter方法的纯java类) User类 package com.d…
一.Action与MVCstruts2是一个基于MVC的web应用框架,它将应用程序分为三个组件:模型,视图,控制器.模型:包含了应用程序的业务逻辑和业务数据,由封装数据和处理业务的javaBean组成.视图:封装了应用程序的输出形式,也就是页面,如jsp,html.控制器:负责接收用户的http请求,再调用模型中响应的方法来处理业务,然后调用响应的视图作为显示.三者共同协同处理响应客户端的请求. 在struts2中控制器分为两部分:1.核心控制器:它就是在web.xml中配置的StrutsPr…
(1) Struts2(一)---struts2的环境搭建及实例 (2) struts2(二)---ModelDriven模型驱动 (3) Struts2属性驱动与模型驱动 (4)…
struts2框架 什么是框架,框架有什么用? 框架 是 实现部分功能的代码 (半成品),使用框架简化企业级软件开发 ,提高开发效率. 学习框架 ,清楚的知道框架能做什么? 还有哪些工作需要自己编码实现 ? 什么是struts2框架,它有什么用? Struts 2是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架. 其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大.Struts 2以WebWork为核心 struts2=struts1+…
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/sunshoupo211/article/details/30249239 1.将Action类作为一个POJO,直接进行接收 在Action类内部定义字段名称.并为之声明get/set方法. 页面表单name属性与定义字段名称同样. package com.common.login; import com.opensymphony.xwork2.ActionSupport; @Suppress…
控制器 作为控制器,大体的作用是作为V端的数据接收并且交给M层去处理,然后负责管理V的跳转.SpringMVC的作用不外乎就是如此,主要分为:接收表单或者请求的值,定义过滤器,跳转页面:其实就是servlet的替代品. 传值方式 springmvc最方便的一点就是可以通过注释方式来定义它的url. @Controller public class formMVC { @RequestMapping("/hello") public void login(){ } 如上面这种方式,在项目…
控制器 作为控制器,大体的作用是作为V端的数据接收并且交给M层去处理,然后负责管理V的跳转.SpringMVC的作用不外乎就是如此,主要分为:接收表单或者请求的值,定义过滤器,跳转页面:其实就是servlet的替代品. - append Spring MVC在Web应用中扮演V的角色,负责处理HTTP请求并返回相应的资源,它在用的时候要配置一个核心的Dispatcher负责检查资源,请求过来的时候会查找是否有相应的Handler,有就会把请求交给Controller,一般使用注解来配置暴露给用户…
控制器 作为控制器,大体的作用是作为V端的数据接收并且交给M层去处理,然后负责管理V的跳转.SpringMVC的作用不外乎就是如此,主要分为:接收表单或者请求的值,定义过滤器,跳转页面:其实就是servlet的替代品. - append Spring MVC在Web应用中扮演V的角色,负责处理HTTP请求并返回相应的资源,它在用的时候要配置一个核心的Dispatcher负责检查资源,请求过来的时候会查找是否有相应的Handler,有就会把请求交给Controller,一般使用注解来配置暴露给用户…
1.在以前的代码中我们我们需要获得jsp传递过来的参数我们采用下面的方式获得 package com.weiyuan.test; /** * struct2的action可以不继承任何框架的接口 * 1.默认调用的是execute()方法 * */ public class LoginAction { private String username; private String password; public String getUsername() { return username; }…
所谓ModelDriven,意思是直接把实体类当成页面数据的收集对象.比如,有实体类User如下: package cn.com.leadfar.struts2.actions; public class User { private int id; private String username; private String password; private int age; private String address; public String getUsername() { ret…
一.DomainModel(域模型) 1. 应用场景:一般我们在struts2的action中接收参数通常是如下方式 package cn.orlion.user; import com.opensymphony.xwork2.ActionSupport; public class UserAction extends ActionSupport{ private String username; private String password; public String getUsernam…
odelDriven 为什么需要ModelDriven 所谓ModelDriven,意思是直接把实体类当成页面数据的收集对象.比如,有实体类User如下: package cn.com.leadfar.struts2.actions; public class User { private int id; private String username; private String password; private int age; private String address; publi…
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------…
Struts2 运行流程图-1…