Struts学习之模型驱动】的更多相关文章

* 要从页面中获取表单元素的值,需要在动作类中声明与页面元素同名的属性.导致动作类中既有javabean又有业务方法.    * 将javabean和业务方法进行分离:        * 将重新创建一个javabean,将javabean的内容放置其中.        * 动作类action中只留业务方法    * 在动作类中声明的javabean无法从页面中获取同名的属性    * 需要使用struts2框架提供"ModelDriven(模型驱动)"        * 实现Model…
1.在Struts2的Action中取得请求参数值的几种方法 public class GetRequestParameterAction extends ActionSupport { private String bookName; private String bookPrice; public String getBookName() { return bookName; } public void setBookName(String bookName) { this.bookName…
-- struts2 是在struts1和webwork基础上发展的全新框架. -- struts2解决的问题: 原始的servlet中,每需要操作一个crud的操作就要创建一个servlet,虽然后面 使用了baseServlet,但是还是不够好.struts2就是用来解决这个问题的. 解决问题的原理:使用过滤器,根据不同的请求来执行同一个类(Action --> 由form 表单中的action属性得来)中的不同方法 --- 过滤器服务器启动就创建,servlet默认第一次访问创建strut…
ContextMap 包含值栈包含 root(list结构)和context(map结构)  值栈包含contextMap的引用.  Actioncontext是工具类 可以获取他们 Struts2拥有优良的设计和功能,其优势具体如下:  优点 l 项目开源,使用及拓展方便,天生优势. l 提供Exception处理机制. l Result方式的页面导航,通过Result标签很方便的实现重定向和页面跳转.  全局结果视图 l 通过简单.集中的配置来调度业务类,使得配置和修改都非常容易. l 提供…
大家都在讲struts已经过时了,现在都是前后台分离,没有必要去学一个淘汰的框架,但是怎么讲呢?我觉得,struts能够流行那么多年,肯定有它的原因,肯定有很多优秀和好的地方,有一个指导过我的人给我讲,struts很优雅,这句话,里面有一些理念是才是它能够流行这么久的原因!框架本身就是艺术,不管是什么年代,能够被众人追捧,作为一个小白,就要虚心学习,思维比技能更加重要,而影响一代一代人的,也正是这种思想:思想的力量才能跳出微观辨识,站在稍高一点的点上,去思考,宏观辨识这个亦真亦假,但是透露着深刻…
1.集成tomcat到eclipse http://www.eclipsetotale.com/tomcatPlugin.html 下载最新的plug后,解压.解压后的文件放到eclipse的plug目录中 2.使用struts配置文件web.xml/struts-config.xml中的元素必须按照dtd文档定义顺序书写,即遵从了dtd定义顺序. 常见的错误是顺序错误导致不能识别.例如web.xml文件中 <welcome-file-list> <welcome-file>ind…
1. upload.jsp <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="/struts-tags" prefix="s"%> <% String path = request.getContextPath(); String basePath = req…
一 类型转换 input.jsp <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":&q…
今天在进行struts全局类型和局部类型转换时,发现一个问题,如下: 当输入一个点的坐标时,我使用全局转换提示错误,找不到类,当改变成局部类型转换时,可以成功转换,不知道这个是什么原因,难道全局不可以应用到局部? 遇到的错误如下: Error setting expression 'point' with value '[Ljava.lang.String;@a6af6e' ognl.MethodFailedException: Method "setPoint" failed for…
struts2 架构图如下图所示: 依照上图,我们可以看出一个请求在struts的处理大概有如下步骤: 1.客户端初始化一个指向Servlet容器(例如Tomcat)的请求: 2.这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin): 3.接着StrutsPrepareAndExecuteFilter被调用,StrutsPrepareAn…
* 首先要从页面中获取对应的标签name属性的值,在动作类action中声明同名的属性,提供get和set方法    * 要继承ActionSupport类或者实现Validateable接口    * 重写Validateable接口的validate()方法        * 前提是:要保证setUsername().validate().login()方法要按照这个先后顺序执行    * 如果登录失败,如何处理:        * this.addFieldError( key, valu…
* 单文件上传:        * 在动作类action中声明相关属性:            * 在动作类action中,要声明与页面中表单name属性同名的属性,同名的属性的类型是File类型:            * 在动作类action中,要声明[同名的属性]ContentType,类型是String类型:            * 在动作类action中,要声明[同名的属性]FileName,类型是String类型            * 给所有属性提供get和set方法     …
* 从页面中获取对应的内容        * 在动作类action中,声明与页面中表单name属性的值同名的属性        * 提供get和set方法        * struts2框架就会通过反射机制,从页面中获取对应的内容    * struts2框架不能把页面中获取到的字符串类型转换成任何类型    * 当struts2框架不能把页面中获取到的字符串类型进行转换时,就需要自定义类型转换器    * 自定义类型转换器:        * 要么实现TypeConverter接口或者继承T…
* 所有的拦截器都需要实现Interceptor接口或者继承Interceptor接口的扩展实现类    * 要重写init().intercept().destroy()方法        * init()是在struts2框架运行时执行,在拦截器的生命周期中只执行一次,可以做必要的内容的初始化工作        * intercept(),是每一次请求就执行一次,做相关处理工作.            * intercept()方法接收一个ActionInvocation接口的实例     …
转自: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——这是…
转自:http://blog.csdn.net/hanxuemin12345/article/details/38782213 一,引题 1,Json数据格式简介 JSON是脱离语言的理想的数据交换格式,所以它被频繁的应用在客户端与服务器的通信过程中,这一点是毋庸置疑的.而在客户端与服务器的通信过程 中,JSON数据的传递又被分为服务器向客户端传送JSON数据,和客户端向服务器传送JSON数据,前者的核心过程中将对象转换成JSON,而后者的核 心是将JSON转换成对象,这是本质的区别.另外,值得…
引言: Struts2拦截器,每个拦截器类只有一个对象实例,即采用单例模式,所有引用这个拦截器的Action都共享这一拦截器类的实例,因此,在拦截器中如果使用类变量,要注意同步问题. •       拦截器是在访问某个方法,字段之前或之后实施拦截. •       拦截器是AOP的一种实现 •       拦截器栈(Interceptor Stack) –      拦截器栈就是将拦截器按一定的顺序联结成一条链. –      在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序…
jdk下载: 使用注解: @ParenPackage(value="struts-default") @Namespace(value="/) @Action(value="find",results={@Result(name="",lication-"/list.jsp")}) 2.ActionContext上下文对象 struts.multipart.maxSize  临时目录…
Struts 2框架提供了内置支持处理文件上传使用基于HTML表单的文件上传.上传一个文件时,它通常会被存储在一个临时目录中,他们应该由Action类进行处理或移动到一个永久的目录,以确保数据不丢失. 1. upload.jsp <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="/struts-tag…
------struts in action 读书笔记 1. ActionServlet:Struts 的ActionServlet控制导航流.当ActionServlet从容器接到一个请求,它使用URI(或者“path”)也决定哪个Action来处理请求.< Control Layout > 2. Action:用来访问业务逻辑类.一个 Action 可以校验输入,并且访问业务层以从数据库检索信息.为校验输入或者使用输入来更新数据库,Action 需要知道什么值被提交上来.它并不是强制每个A…
一. 1.配置 <!-- hibernate-core --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.2.12.Final</version> </dependency> <!-- mysql-connector-java 当前最新测试版本…
Hibernate (开放源代码的对象关系映射框架) http://www.cnblogs.com/wenwen123/p/5658625.html 一. 1.新建 2.配置 <!-- hibernate-core --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.2.12…
一. 文件的上传: 1). 表单需要注意的 3 点 2). Struts2 的文件上传实际上使用的是 Commons FileUpload 组件, 所以需要导入 commons-fileupload-1.3.jarcommons-io-2.0.1.jar 3). Struts2 进行文件上传需要使用 FileUpload 拦截器 4). 基本的文件的上传: 直接在 Action 中定义如下 3 个属性, 并提供对应的 getter 和 setter //文件对应的 File 对象private…
1 ognl概述 2 ognl入门案例 3 什么是值栈 (1)servlet和action区别 (2)值栈存储位置 4 如何获取值栈对象 5 值栈内部结构 6 向值栈放数据 (1)s:debug标签 (2)向值栈放字符串 (3)向值栈放对象 (4)向值栈放list集合 7 从值栈获取数据 (1)从值栈获取字符串 (2)从值栈获取对象 (3)从值栈获取list集合 OGNL的作用 Struts2默认的表达式语言就是OGNL,它具有以下特点: ①支持对象方法调用.例如:objName.methodN…
see also:http://blog.csdn.net/chenggil10/article/details/5965806#_Toc250472631 0.struts2每一个请求,都new一个实例. 1.动态方法调用代替method参数,dmi,通配符*跟method参数结合,也能达到dmi的效果 通过{1}指定返回的页面和调用的具体方法,比dmi更优!为何我们项目不用通配符? 2.tld,后缀的文件,用于描述标签文件的语言 .strusts2中不需要将tld文件放于web-inf下.…
MVC设计模式概览 实现MVC(Model,View,Controller)模式的应用程序由3大部分构成: -模型:封装应用程序的数据和业务逻辑(POJO,Plain Old Java Object) -视图,实现应用程序的信息显示功能(Jsp) -控制器,接收来自用户的输入,调用模型层,,响应对应的视图组件Servlet,Filter. 下面看代码: index.jsp <%@ page language="java" contentType="text/html;…
1,需要包下载地址: http://archive.apache.org/dist/struts/binaries/ 2.报错:org/apache/commons/lang3/StringUtils 导入commons-lang3-3.1.jar .再启动…
1.Struts开发基础 1.1  MVC的基本概念 mvc将一个应用系统的输入.处理和输出流程按照Model(模型).View(视图)和Controller(控制器)三部分进行分离,划分成模型层.视图层和控制层.三层之间以最少的耦合来协同工作,从而提高了应用 系统的可扩展性和可维护性.   MVC思想的核心就是分层.它将系统的各个组件进行分类,不同的组件扮演不同的角色,然后将系统中的组件分隔到不同的层中,这些组件将被严格限制在其所在的层内.各层之间则以松散耦合的方式组合在一起,从而保证良好的封…
package com.mzy.servlet; import java.util.Arrays; import java.util.Map; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import or…