Struts2笔记——类型转换】的更多相关文章

 概述 * 从一个HTML 表单到一个Action 对象, 类型转换是从字符串到非字符串.     >HTTP 没有 “类型” 的概念. 每一项表单输入只可能是一个字符串或一个字符串数组. 在服务器端, 必须把 String转换为特定的数据类型 * 在 struts2 中, 把请求参数映射到 action 属性的工作由 Parameters 拦截器负责, 它是默认的 defaultStack 拦截器中的一员. Parameters拦截器可以自动完成字符串和基本数据类型之间转换. ========…
Struts2自定义类型转换: 从前台接受到的类型全部是字符串,Struts2自带的一些基本类型转换有时不能满足我们的特别需要,如:日期字符串输入格式,还有一些自定义的类,直接传到后台,我们需要一些自己的转换器: 例: 我有一个Point类型: package cn.jnit.bean; public class Point { private Integer x; private Integer y; public Point() { } public Point(Integer x, Int…
Struts2的上传 1. Struts2默认采用了apache commons-fileupload  2. Struts2支持三种类型的上传组件 3. 需要引入commons-fileupload相关依赖包 * commons-io-1.3.2.jar * commons-fileupload-1.2.1.jar 4. 表单中需要采用POST提交方式,编码类型需要使用:multipart/form-data 5. Struts2的Action     取得文件名称->>规则:输入域的名称+…
Struts2的类型转换 类型转换的作用: HTTP请求都是字符串类型,需要把这些字符串类型转化成相应的数据类型,使得Web应用的控制组件可以使用. 1.內建的类型转换器 Struts2可以完成大多数常用类型的转换,因为它已经内奸了字符串数据类型和如下类型之间互相转换的转换器: (1)boolean和Boolean:完成字符串和布尔值之间的转换. (2)char和Character:完成字符串和字符之间的转换. (3)int和Integer:完成字符串和整型值之间的转换. (4)long和Lon…
详细出处参考:http://www.jb51.net/article/35465.htm 一.类型转换的意义 对于一个智能的MVC框架而言,不可避免的需要实现类型转换.因为B/S(浏览器/服务器)结构应用的请求参数是通过浏览器发送到服务器的,这些参数不可能有丰富的数据类型,因此必须在服务器端完成数据类型的转换 MVC框架是一个表现层解决方案,理应提供类型转换的支持,Struts2提供了功能非常强大的类型转换支持. 二.表现层数据的处理 1.对于web应用而言,表现层主要用于与用户交互,包括收集用…
Struts2概述1.简介Struts就是在Model2的基础上实现的一个MVC框架,它只有一个中心控制器,采用XML定制的转向的URL,采用Action来处理逻辑.2.Struts2的MVC模式MVC将一个应用的输入.处理和输出流程按照模型.视图和控制器三部分进行分离,这样,一个应用就可以划分为模型层.视图层和控制器层3个层次,三层之间最少的耦合来协同工作.在Struts2中,视图层对应视图组件,通常是指JSP页面,也适用于Velocity.FreeMarker等其他视图显示技术.模型层对应业…
Struts2的类型转换机制 在基于HITP 协胆的Web 应用中,客户端〈浏览器〉和服务器之间传输的都是字符串形式的数据,换句话说,服务器接收到的用户数据只能是字符串或字符数组, 但在服务器端的Java 程序中, 数据是有各种类型的,如整型( int ) .浮点型(float ) .日期类型( java . u ti l. Date) 等,以及各种自定义的数据类型, 因此, 在接收到客户端传来的字符串数据后, 我们还需要将这些数据转换为正确的类型 Struts2对类型转换的支持 Struts2…
在使用servlet开发中,表单中提交的数据到servlet后都是字符串类型,需要程序员手动进行类型转换. 但是到struts2后,基本数据类型struts2都可以转换.但是如果是自定义类型,struts2也不能自动转换. 这个时候需要程序员进行手动转换或者使用struts2提供的类型转换机制来实现. 案例:假如在页面上提交一个坐标点,如何在处理类中获取的也是坐标对象信息. 使用struts2的类型转换机制步骤: 1.编写类型转换器,该类型转换器继承StrutsTypeConverter ,由o…
所有的MVC框架,都属于表现层的解决方案,都需要负责收集用户请求参数,并将请求参数传给应用的控制器组件. 这时问题出现了,所有的请求参数都是字符串类型数据,因此MVC框架必须具备将这些字符串请求参数转换成相应的数据类型. struts2提供了非常强大的类型转换机制,struts2的类型转换是基于OGNL表达式. struts2提供了很好的扩展性,开发者可以开发出自己的类型转换器.完成字符串到自定义类型之间的转换. 如果类型转换中出现未知异常,开发者无须关心异常处理,struts2的convers…
关于回显: 如果是int型,默认就会回显为0,如果不想让回显,则Integer就好 //**************************************声明式验证************************************** 如果配置文件xml没有提示,需要重新关联tdt: windows-preferences-xml-xml catalog,看里面有没有要关联的tdt,如果有,先移除再添加.add: key type : uri key : tdt路径 然后从fir…
<context-param> <param-name>pattern</param-name> <param-value>yyyy-MM-dd hh:mm:ss</param-value> </context-param> //获取当前 WEB 应用的初始化参数 pattern ServletContext servletContext = ServletActionContext.getServletContext(); Syst…
针对日期类java.util.Date进行类型转换,要求客户端使用"yyyy-MM-dd","yyyy/MM/dd"中的任意一种输入,并以"yyyy-MM-dd"的格式输出,该类型转换应用于全局范围 public class User { private String username;//名字 private Integer age;//年龄 private Date birthday;//生日 public String getUsernam…
针对日期类java.util.Date进行类型转换,要求客户端使用"yyyy-MM-dd","yyyy/MM/dd"中的任意一种输入,并以"yyyy-MM-dd"的格式输出,该类型转换应用于全局范围 先定义一个实体类 package cn.entity; import java.util.Date; public class User { private String username;//名字 private Integer age;//年龄…
bool b = 42; // _b is true_ int i = b; // _i has value 1_ i = 3.14; // _i has value 3_ double pi = i; // _pi has value 3.0_ unsigned char c = -1; // _assuming 8-bit chars_, _c has value 255_ signed char c2 = 256; // _assuming 8-bit chars_, _the value…
1.自定义struts拦截器 应用场景:如果用户登陆后可以访问action中的所有方法,如果用户没有登陆不允许访问action中的方法,并且提示“你没有操作权限” 1)两个页面,一个用户登陆user.jsp,一个用户退出quit.jsp,都放在WebRoot目录下 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% request.get…
流程: 1. StrutsPrepareAndExcuteFilter:StrutsPrepareAndExcuteFilter作为前端控制器,是整个Struts2的调度中心. 2. ActionMapper:ActionMapper负责识别当前的请求是否需要Struts2做出处理. 3. ActionProxy:这个对象作为Action与xwork之间的中间层,会代理Action的运行过程. 4. ActionInvocation:ActionInvocation对象描述了Action运行的整…
Struts2对异常支持(声明式异常.自动的异常处理), 异常处理(运行期异常事务自动回滚) 1. 自定义异常类,继承RuntimeException或Exception实现构造方法. 2. 配置异常:全局页面跳转,与全局异常处理.其他包如果想使用,需要继承. <global-results> <result name="error">/error.jsp</result> <result name="input">/…
在struts2中,我们可以实现对action的所有方法进行校验或者对action的指定方法进行校验.  对于输入校验struts2提供了两种实现方法: 1.采用手工编写代码实现. 2.基于XML配置方式实现. ==================================  ================================== 手工编写代码实现对action中所有方法输入校验 通过重写validate() 方法实现, validate()方法会校验action中所有与ex…
传统的类型转换.(略) Struts2中提供了内置的基本的类型转换器,可以实现基本类型的自动转换,包括: Integer, Float, Double, Decimal Date and Datetime Arrays and Collections Enumerations Boolean BigDecimal 基于OGNL(对OGNL暂时不熟悉)的类型转换: 以一个User类为例: public class User { private String name; private String…
Struts2提供的类型转换: Struts2提供的是一个名叫StrutsTypeConverter的抽象类,这个类实际上是DefaultTypeConverter的子类.当我们继承自该抽象类 时,要求我们实现下面的两个方法: @Override public Object convertFromString(Map arg0, String[] arg1, Class arg2) { // TODO Auto-generated method stub return null; } @Over…
jsp提交的数据全部是String类型,Struts2也是通过request.getParameter(name)取得String类型的数据,并通过拦截器将String转换成各种类型的数据,然后通过get.set方法设置到action对应的属性,默认的转换器不能满足需求,需要自定义类型转换. 数据类型转换都需要实现ognl.TypeConverter接口,一般直接继承DefaulrTypeConverter类,并实现convertValue()方法.convertvalue()有3个参数,参数v…
获取ServletAPI: 第一种方式: //在request域中放入属性req,暂且认为getContext()获取的是request域空间,但实际不是 ActionContext.getContext().put("req", "req_value"); //在session域中放入属性ses ActionContext.getContext().getSession().put("ses", "ses_value");…
前面我们实现了从字符串到User对象的转换.如果表单中有多个User数据,我们可以批量转换. 我们把input.jsp修改为: <h1>使用分号隔开username password</h1> <form action="userAction2.action"> <input type="text" name="user"> <br> <input type="text&…
Web应用程序的交互都是建立在HTTP之上的,互相传递的都是字符串.也就是说服务器接收到的来自用户的数据只能是字符串或者是字符数组,而在Web应用的对象中,往往使用了多种不同的类型,如整数(int).浮点数(float).日期(Date)或者是自定义数据类型等.因此在服务器端必须将字符串转换成合适的数据类型. Struts2框架中为我们提供了一些简单类型的转换器,比如转换为int.float等简单数据类型是不需要我们自己定义转换器去转换的,struts2内部本身就为我们提供了转换的方法,但像一些…
一.OGNL入门 1.简介     OGNL的全称是对象图导航语言(Object-Graph Navigation Language),它是一种功能强大的开源表达式语言,使用这种表达式语言,可以通过某种表达式语法,存取Java对象的任意属性,调用Java对象的方法,同时能够自动实现必要的类型转换.如果把表达式看作是一个带有语义的字符串,那么OGNL无疑成为了这个语义字符串与Java对象之间沟通的桥梁.在struts2中,ognl表达式就是默认的表达式语言. 2.使用要求     (1)导入标签库…
转https://www.cnblogs.com/IT-1994/p/5998458.html 一.前言 笔者一直觉得,学习一个知识点,你首先要明白,这东西是什么?有什么用?这样你才能了解.好了,不说废话. 1.1.类型转换为何存在?什么是类型转换? 在MVC框架中,都是属于表示层解决方案,都需要负责收集用户请求的参数,并且将请求参数传给应用的控制器组件,但是,这里有一个问题,客户端提交的请求参数都是字符串数据类型,而java这门语言本身就是强类型语言,所以我们需要类型转换,就是把字符串类型转化…
1.如何将struts2框架引入到web项目中      1.把struts2相关jar包引入到项目中 2.把struts2的配置文件直接放到src下面,名字要叫做struts.xml.(运行时配置文件会被框架自动读取).      注意:如果struts.xml文件中不能自动提示标签,把相应的dtd文件配置上去. 3.在web.xml文件中配置struts2框架的过滤器.     这个过滤器的作用:拦截struts2框架中的action.     注意:如果不配置这个filter,struts…
Struts2 中, HTML 表单将被直接映射到一个 POJO,通过params拦截器,类中定义对应属性,及对应set方法即可. Struts2 中,任何一个POJO都可以是一个action类. Struts2 会为每一个 HTTP 请求创建一个新的 Action 类的实例,即 Action 不是单例的,是线程安全的. :8080/contextPath 必须有一个不带参的构造器,struts.xml中通过全类名反射创建类实例 在jsp页面中,request.setCharacterEncod…
Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDispatcher <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFi…
在一些项目中经常会让用户提交表单,当用户点击按钮提交后,如果再次浏览器刷新,这就会造成表单重复提交,若是提交的内容上传至服务器并请求数据库保存,重复提交的表单可能会导致错误,然后跳转到错误界面,这是一个糟糕的用户体验. 因此Struts2提供了一个标签token验证机制,能够避免重复提交表单. 这里要注意的一点是,Action类必须继承ActionSupport,不然会导致空指针异常(这问题卡了好久T-T) ====================================== 下面简单实…