struts ModelDriven】的更多相关文章

在表单提交的时候传值是这样,name=admin.username name=admin.password,然后在action中定义属性admin生成get和set 也可以实现ModelDriven这个泛型接口 public class HomeAction extends BasicAction implements ModelDriven<Admin>{ private static final long serialVersionUID = 1L; //实现该方法 public Admi…
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------…
package com.ssh.shop.action; import java.io.InputStream; import java.lang.reflect.ParameterizedType; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.apache.struts2.interceptor.ApplicationAware; import org.apa…
背景: 从一个Member的增删改查,来了解Struts2的运行原理及学习ModelDriven拦截器.Preparable拦截器. 新建项目实现列表的展示及删除功能: web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/n…
struts传值不需要用到request,struts会处理好. 1.不是面向对象直接在jsp页面和Java代码都写:name,password... 以下为面向对象 2.action类实现ModelDriven<T>接口,在这样的情况下,jsp页面可以不写user.username,直接写username. 通过方法 public User getModel()来实例化一个user,然后struts就会把jsp页面传过来的值通过set方法放到user的属性中. public class te…
1. 问题 Struts2 的 Action 我们将它定义为一个控制器,但是由于在 Action 中也可以来编写一些业务逻辑,也有人会在 Action 输入业务逻辑层. 但是在企业开发中,我们一般会将业务逻辑层单独编写,而不是将它与 action 层写到一起. 之前的练习中,我们一直将属性如 username . password 等保存在了 action 中. 这样做了以后导致我们在调用业务逻辑层时可能需要将Action的对象传过去. 但是这样做无异于直接将 Servlet 传给 Servic…
这个项目是用Struts2做的,我这里单独写了一个BaseAction,用来存放所有的功能模块的Action的公共部分, 刚开始的做法是这个BaseAction只会继承ActionSupport 并不会实现ModelDriven<T>,而是让每一个具体的Action(比如DepartmentAction)去继承ModelDriven<T>, 但是为了实现代码不重复写,进行了改进.这里直接让BaseAction继承ModelDriven<T>,然后让所有的功能模块的Act…
前言: 前面已经有一篇随笔介绍了Struts2的大概原理.本文就Struts2中Action与jsp页面进行数据对接时介绍几种常见方法! 值栈ValueStack 3个Action Action1 package com.gdufe.action; import com.opensymphony.xwork2.ActionSupport; /* * Action接收参数之后通过set方法赋给普通变量age,name; */ public class UserAction1 extends Act…
页面表单 <form action="updateInput.action" method="post"> <input type="text" name="id"/> <input type="submit" value="查询"> </form> struts.xml配置 <action name="updateInpu…
     拦截器是AOP中的概念,它本身是一段代码,可以通过定义“织入点”,来指定拦截器的代码在“织入点”的前后执行,从而起到拦截的作用.正如上面 Struts2的Reference中讲述的,Struts2的Interceptor,其拦截的对象是Action代码,可以定义在Action代码之前或者之后执行拦截器的代码. 接下来,我们将重点讨论一下Struts2中的拦截器的内部结构和执行顺序,并结合源码进行分析. Interceptor结构 让我们再来回顾一下之前我们曾经用过的一张Action L…
比如,当我要添加一个信用卡的时候,我需要信用卡的CardType, 这些数据是存在数据库中的,我要先通过action 的一个 create方法,取到信用卡的类型: public String create(){        creditCardTypeList = this.creditCardTypeService.getList();               return SUCCESS;} Struts的配置文件: <action name="create" meth…
一.hibernate1. -----BaseDao------ // 容器注入 private SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } public SessionFactory getSessionFactory() { return sessionFactory;…
什么是Struts 2 拦截器  拦截器就是当用户请求后台Action类时在Action的Excute()方法执行前和Result返回魔板试图之后(将页面(数据)发送给浏览器渲染之前)所需要的一些通用操作存放在拦截器中对数据进行拦截! 简单来说就是对请求和响应信息进行过滤,可以看做是Java EE中的过滤器,但是需要注意的是拦截器只能对Action类的请求进行拦截若直接请求jsp文件.Css样式等静态文件拦截器是无法进行过滤的! 为什么要使用拦截器 任何优秀的MVC框架都会提供一些通用的操作,如…
一.属性驱动 在目标 Action 类中,通过 setXxx() 方法来接收请求参数. 二.模型驱动 1.ParametersInterceptor 拦截器工作原理 ParametersInterceptor 会将请求参数赋值给值栈中栈顶的对象.默认情况下,栈顶对象是目标 Action 类. 2.modelDriven 拦截器工作原理 获取目标 Action 对象,判断是否实现了 ModelDriven 接口,若实现,则调用目标 Action 的 getModel(),将该方法返回的对象压入栈顶…
第1篇 Java Web开发基础第1章 Web的工作机制( 教学视频:31分钟) 1.1 理解Web的概念 1.1.1 Web的定义 1.1.2 Web的三个核心标准 1.2 C/S与B/S两种软件体系结构 1.3 理解HTTP协议 1.3.1 解析HTTP协议URL 1.3.2 解析HTTP协议请求 1.3.3 解析HTTP协议响应 1.4 本章小结 第2章 搭建Java Web开发环境( 教学视频:38分钟) 2.1 JDK的下载与安装 2.1.1 JDK简介 2.1.2 JDK下载安装 2…
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------…
Struts2 运行流程图-1…
一.关键步骤 1.创建Java Web项目 2.引入Struts2的依赖包,将依赖包拷贝到WEB-INF/lib下 * commons-logging-1.0.4.jar * freemarker-2.3.15.jar * ognl-2.7.3.jar * struts2-core-2.1.8.1.jar * xwork-core-2.1.6.jar * commons-fileupload-1.2.1.jar 3.在web.xml配置文件中,配置StrutsPrepareAndExecuteF…
REST 简介 REST 是英文 Representational State Transfer 的缩写,这个术语由 Roy Thomas Fielding 博士在他的论文<Architectural Styles and the Design of Network-based Software Architectures>中提出.从这篇论文的标题可以看出:REST 是一种基于网络的软件架构风格. REST 架构是针对统传统 Web 应用提出的一种改进,是一种新型的分布式软件设计架构.对于异构…
struts.xml中为了与struts1的MVC模式整合,需要类似如下的拦截器的引用 <interceptor-stack name="integration"> <interceptor-ref name="static-params"/> <interceptor-ref name="loginForm"/> <interceptor-ref name="model-driven"…
什么是Struts 2拦截器? 从软件构架上来说,拦截器是实现了面向方面编程的组件.它将影响了多个业务对象的公共行为封装到一个个可重用的模块,减少了系统的重复代码,实现功能的高度内聚,确保了业务对象的整洁和纯度. 从Java代码上来说,它就是一个普度的Java对象,它只需要实现一个名为Interceptor的接口. 为什么要使用拦截器? 拦截器消除了动作组件中的横切任务(cross-cutting task).例如,日志记录是一个典型的横切关注.以前,我们可能需要为每个动作组件准备一些记录日志的…
http://blog.sina.com.cn/s/blog_4a69fa43010005il.html 在web应用方面,Spring有独立的MVC实现,与struts和webwork2相比毫不逊色. struts缺点是比较重,页面(V)上要有form要用标签,form(M)要继承ActionForm这么个东东,控制类(C)继承Action/DispatchAction. webwork2比struts要轻,页面没什么说的主要就是标签,model层也不要强制继承什么,控制类还是要实现一些web…
Struts2面试题1.struts2工作流程Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher.业务控制器Action和用户实现的企业业务逻辑组件. 核心控制器FilterDispatcher是Struts 2框架的基础,包含了框架内部的控制流程和处理机制.业务控制器Action和业务逻辑组件是需要用户来自己实现的.用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用.Struts 2的工…
漏洞版本: Struts < 2.3.15.1 漏洞描述: BUGTRAQ ID: 61196 CVE(CAN) ID: CVE-2013-2248 Struts2 是第二代基于Model-View-Controller (MVC)模型的java企业级web应用框架.它是WebWork和Struts社区合并后的产物. Apache Struts 2.0.0没有有效过滤"redirect:"/"redirectAction:"参数前缀内容,存在多个开放重定向漏洞…
什么是拦截器 拦截器(Interceptor)是Struts 2的一个强有力的工具,有许多功能都是构建于它之上,如国际化(前两篇博客介绍过).转换器,校验等. 拦截器是动态拦截Action调用的对象.它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行.同时也是提供了一种可以提取action中可重用的部分的方式. 说到拦截器有一个东西不 能落下——拦截器链(Interceptor Chain,在Struts 2中称为拦截器栈Inte…
1) struts-default.xml 这个文件是struts2框架默认加载的配置文件.它定义struts2一些核心的bean和拦截器. <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"     "h…
* 要从页面中获取表单元素的值,需要在动作类中声明与页面元素同名的属性.导致动作类中既有javabean又有业务方法.    * 将javabean和业务方法进行分离:        * 将重新创建一个javabean,将javabean的内容放置其中.        * 动作类action中只留业务方法    * 在动作类中声明的javabean无法从页面中获取同名的属性    * 需要使用struts2框架提供"ModelDriven(模型驱动)"        * 实现Model…
转自:http://blog.csdn.net/hanxuemin12345/article/details/38559979 页面一个请求发送过来,依次经过一系列拦截器(处理公共部分,如:往数据中心(值栈)填充数据,所处理工作与业务无关),Action,Result. 1,经过一系列拦截器 介绍其中的两个拦截器:ModelDriven.Params; ——一个请求过来,首先创建一个值栈对象,经过初始化,然后在Map和对象栈中放入一些数据: (1)值栈的结构: (2)在Map和对象栈中分别存入什…
转自:http://blog.csdn.net/hanxuemin12345/article/details/38763057 项目中我们经常遇到这样的需求——页面部分刷新,例如:添加用户,转到添加用户页面时,页面自动加载了所有部门. 完整流程:选择所属部门,填写用户名和密码,点击“注册”,填写用户名后,需要立即检查数据库是否存在此用户名,如何在不刷新页面的情况下实现此效果? 但看上面提出的问题并不难,情况很常见,都知道使用ajax实现,但是如何在struts中自定义结果集来实现ajax——这是…
ValueStack:struts2的一个存放数据的数据结构(核心) ValueStack大致能够理解为:由Map和对象栈组成 ValueStack作用范围:一个请求,用它来取代request的作用域. 当来了一个请求时,便创建出一个ValueStack,并进行一些初始化. 往Map中放:request=...,session=...,application=...,attr=...,parameters=....等等 往对象栈中放:action和还有一个默认对象 拦截器:ModelDriven…