- 浏览: 448723 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (108)
- Ibatis (0)
- ZK (13)
- 设计模式 (3)
- Java编程 (21)
- 正则表达式 (2)
- 开发小续 (2)
- 杂谈 (1)
- 数据库 (6)
- Hibernate (6)
- Struts 2 (2)
- Spring (2)
- 版本控制 (4)
- Subversion (1)
- Myeclipse (1)
- EL (1)
- jsp (1)
- CAS (1)
- SSO (1)
- Restful Web Service (3)
- jersey (2)
- jersey与spring (1)
- web service框架 (1)
- 系统分析 (1)
- Subversion windows service (1)
- tomcat (1)
- PermGen Space (1)
- 编程心得 (1)
- google map api (1)
- springmvc (1)
- ajax (1)
- Hibernate QBC (1)
- oracle oracle10g (1)
- RBAC 权限设计 (1)
- springsecurity 3 (1)
- JPA (1)
- JPA j2ee (1)
- maven java (1)
- Jquery框架 UI框架 (1)
- printcss (1)
- java reflect 反射 (1)
- Jquery框架 UI框架 3scschool (1)
- collabnet Subversion (1)
- linux redhat (1)
- mysql (3)
- spring spring-data-jpa (1)
- Jquery AjaxForm (1)
- Jquery Map (1)
- linux (3)
- linux nginx openssl zlib pcre (1)
- linux jdk (1)
- 物联网技术 嵌入式 C# (1)
- oracle 数据库 (1)
- oracle (5)
- maven (1)
- java 定时器 (1)
- swing (1)
- java (2)
- 短信接口 (1)
- DBUtils (1)
- JDBC (1)
- javascript json (1)
- shiro (1)
- 权限系统 (1)
- 嵌入式 (1)
- 树莓派 (1)
- python (1)
- Github (1)
- 代码托管 (1)
- 产品设计 (2)
- 产品需求 (2)
- BRD (1)
- MRD (1)
- PRD (1)
- DRD (1)
- FRD (1)
- GIS (1)
- SOA (1)
- 网站资源 (1)
- 骆驼 (1)
- 黑客技术资源 (1)
- 网络安全资源 (1)
- 个人修炼 (1)
- Angular2 (1)
- Nodejs Krakenjs (1)
最新评论
-
GeorgeFeng:
学习啦,感谢
RBAC用户权限管理数据库设计 -
徜徉の小溪:
yuanliangding 写道请求进来时,创建的对象都不是由 ...
基于RESTful Web Service 的Jersey框架与Spring完美整合 -
yuanliangding:
请求进来时,创建的对象都不是由Spring弄出来的。。
基于RESTful Web Service 的Jersey框架与Spring完美整合 -
Ripin_Yan:
我已经按照你的xml这个顺序配置了,结果还是中文乱码。是还有什 ...
SpringMVC使用注解@ResponseBody返回json中文乱码 -
王静娜:
作者的实体图画的很好很有条理,但是个人觉得用户组对应的是资源, ...
RBAC用户权限管理数据库设计
struts2类型转换机制
package com.opensymphony.xwork2;
public class ActionSupport implements Action,ValidationAware,Validateable,TextProvider,LocalProvider,Serializable,ContinuableObject{
protected transient static final Log LOG = LogFactory.getLog(ActionSupport.class);
private transient final TextProvider textProvider = new TextProviderSupport(getClass(),this);
private final ValidationAwareSupport validationAware = new ValidationAwareSupport();
//设置action级别的所有错误
public void setActionError(Collection errorMessages){
validationAware.setActionErrors(errorMessages);
}
//获得action级别的错误集合
public Collection getActionErrors(){
return validationAware.getActionErrors();
}
public Map getErrors(){
return getFieldErrors();
}
public Locale getLocale(){
return ActionContext.getContext().getLocale();
}
public String getText(String aTextName){
return textProvider.getText(aTextName);
}
//向action添加一个action级别的错误
public void addActionError(String anErrorMessage){
validationAware.addActionError(anErrorMessage);
}
public String doinput() throws Exception(){
return INPUT;
}
public boolean hasActionErrors(){
return validationAware.hasActionErrors();
}
//清除所有的错误信息
public void clearErrorAndMessage(){
validationAware.clearErrorAndMessages();
}
public void validate(){
}
public void pause(String result){
}
}
void addActionError(String anErrorMessage)---向action添加一个action级别的错误
void addActionMessage(String aMessage)--向action添加一个action级别的信息
void addFieldError(String fieldName,String errorMessage)--为指定的域添加一个出错信息
void clearErrorsAndMessages()--清除所有的错误和信息
String execute()--其缺省的实现仅返回SUCCESS
Collection getActionErrors()--获得Action级别的错误集合
Collection getActionMessages()--获得Action级别的信息集合
Map getText(String aTextName)--获得与域相关的错误信息集合
String getText(String aTextName)--基于键指定的键值,不存在则返回NULL
String getText(String aTextName,List args)--基于键和附加参数获得指定的键值,不存在则返回NULL
String getText(String aTextName,String defaultValue)--基于键获得指定的键值,不存在则返回缺省值
boolean hasActionErrors()--是否有Action级别的错误
boolean hasActionMessages()--是否有Action级别的信息
boolean hasErrors()--是否有错误,包括域和Action级别的
void pause(String result)--暂停action的执行,抛出异常,并转向对应返回类型
void setActionErrors(Collection errorMessage)--设置action级别的所有错误
void setActionMessages(Collection mesages)--设置action级别的所有信息
void setFieldErrors(Map errorMap)--设置域级别的所有错误
void validate()--默认的空校验器
09.05.05
class:这个属性是个必填属性,它指定了Bean实例的实现类,
type:这个属性是个可选属性,它指定了Bean实例实现Struts2规范,该规范通常是通过某个接口来体现的,因此该属性的值通常是一个Struts2接口,如果需要将Bean实例作为Struts2组件来使用,则应该指定该属性值;
name:该属性指定了Bean实例的名字,对于有相同type类型的多个Bean,则它们的name属性不能相同,这个属性也是个可选属性;
scope:该属性指定Bean实例的作用域。该属性市各可选属性,属性值只能是default、singleton、request、session或thread其中之一。
static:该属性指定Bean是否使用静态方法注入,通常而言,当指定了type属性时,该属性不应该指定为true。
optional:该属性指定该Bean是否是一个可选Bean,该属性市一个可选属性。
struts2框架加载Struts2常量的顺序:
1.struts-default.xml:该文件保存在struts2-core-2.0.6.jar
2.struts-plugin.xml:该文件保存在struts2-Xxx--2.0.6.jar
3.struts.xml:该文件是web应用默认的struts2配置文件
4.struts.properties:该文件是web应用默认的struts2配置文件
5.web.xml:该文件是web应用的配置文件
如果在多个文件中配置了同一个Struts2常量,则后一个文件中配置的常量会覆盖前面文件中配置的常量值;
如
果某个包没有指定namespace属性,即该包使用默认的命名空间,则默认的命名空间总是"",当某个包指定了命名空间以后,该包下所有的Action
处理URL应该是命名空间+Action名,例如如果namespace指定的是get,该包下包含getBooks的Action,则应该显示的URL
为:http://localhost:8080/namespace/book/getBooks.action
static PagContext getPagContext():取得Web应用的PagContext对象
static HttpServletRequest getRequest():取得Web应用的HttpServletRequest对象
static HttpServletResponse getResponse():取得Web应用的HttpServletResponse对象
static ServletContext getServletContext():取得Web应用的ServletContext对象
struts2内建结果类型:
chain结果类型:Action链式处理结果类型
chart结果类型:用于整合JFreeChart的结果类型
dispatcher结果类型:用于JSP整合的结果类型
freemarker结果类型:用于FreeMarker整合的结果类型
httpheader结果类型:用于控制特殊的HTTP行为的结果类型
jasper结果类型:用于JasperResports整合的结果类型
jsf结果类型:用于与JSF整合的结果类型
rdirect结果类型:用于直接跳转到其他URL的结果类型
redirect-action结果类型:用于直接跳装到其他Action的结果类型
stream结果类型:用于向浏览器放回JnputStream
tiles结果类型:用于与Tiles整合的结果类型
velocity结果类型:用于与Velocity整合的结果类型
xslt结果类型:用于与XML/XSLT整合的结果类型
plaintext结果类型:用于显示某个页面的原始代码的结果类型
实现类型转换器的关键是实现convertValue方法,该方法的参数如下:
1、context是类型装换环境的上下文
2、value是需要装换的参数,随着装换方向的不同,value参数的值也是不一样的,当把字符串类型向User类型装换时,value是原始字符串数组,当需要把User类型向字符串类型转换时value是User的事例;
3、toType是转换后的目标类型;
convertValue
方法返回的值就是类型装换后的值,该值的类型也会随转换方向的不同而不同,当把字符串向User类型转换时,返回值类型就是User类型,当需要把
User类型向字符串类型转换时,返回值类型就是字符串类型,所以,
convertValue方法是接受需要转换的值,需要转换的目标类型为参数,然后返回转换后的目标值;
1、boolean和Boolean:完成字符串和布尔值之间的转换
2、char和Character:完成字符串和字符之间的转换
3、int和Integer:完成字符串和整型值之间的转换
4、long和Long:完成字符串和长整型值之间的转换
5、float和Float:完成字符串的单精度浮点值之间的转换
6、double和Double:完成字符串和双精度浮点值之间的转换
7、Date:完成字符串和时间之间的转换,日期格式使用用户请求所在Locale的SHORT格式
8、数组:在默认情况下,数组元素是字符串,如果用户提供了自定义类型转换器,也可以是其它符合类型的数组
9、集合:在默认情况下,假定集合元素类型为String,并创建一个新的ArrayList封装所有字符串
发表评论
-
开源项目 企业框架,学习资料
2013-05-13 16:10 1583Spring mvc+hibernate+freemar ... -
maven 通用配置
2013-04-27 10:02 3026在搭建maven 项目的时候,我们很 ... -
SpringMVC使用注解@ResponseBody返回json中文乱码
2012-11-27 14:42 12499----------------------------- ... -
CAS 单点登录client,server端分析
2012-04-09 13:14 12770本篇文章是对JA-SIG CAS(v3.3)的初步调研总 ... -
EL表达式 functions String处理函数
2012-03-27 14:56 426101.uri="http://java.sun.co ... -
Hibernate hbm.xml中查询数据作为虚拟列Formula使用
2011-12-26 17:09 6262Hibernate 中的Formula 攻 ... -
Dom4jUtils 工具类让你更加方便操作XML的MarkerIce.Jar
2011-09-29 11:24 1657最近我闲着无聊,看到一篇文章关于XMl的操作.对于XMl操作相 ... -
getHibernateTemplate.load() 和get()之间的区别
2011-09-08 15:19 8755今天我在hibernate 进行 getHibernateTe ... -
排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序
2011-05-24 09:16 1640先推荐一篇关于排序算法的文章:http://www.cpp ... -
struts2整合JSON,JQuery 实现ajax功能
2011-05-17 10:23 24584月 我使用到了 struts2 整合JQuer ... -
在spring来管理实例对象prototype和singleton的选择.针对action如何使用
2011-04-22 15:54 1379默认情况下,从bean工厂所取得的实例为Singleton(b ... -
Apache Commons工具集简介
2011-03-22 14:33 1281Apache Commons包含了很多开源的工具,用于解 ... -
java使用定时器,定时发送邮件
2011-02-22 16:01 1703java使用定时器,定时发送邮件 ... -
JSP 分页标签库
2010-12-31 16:11 3059好了,该说一下怎么用 ... -
java中web.xml的配置信息
2010-11-18 09:49 3782<?xml version="1.0&q ... -
forward,include,redirect的区别(转)
2010-08-27 13:54 1365forward,include,redirect是 ... -
一个Java程序员应该掌握的10项技能[转]
2010-06-12 10:53 13131、语法:必须比较 ... -
(转)Java开发者的十大戒律
2010-06-09 17:27 1206有许多标准和实 ... -
Java 线程同步示例
2010-06-08 23:22 1411文章用实例代码展示了Java中多线程访问共享资源 时线程同 ... -
synchronized 关键字
2010-05-28 10:28 1206synchronized 关键 ...
相关推荐
标题中的“Struts2 类型转换器”主要指的是Struts2框架中处理请求参数到Action类属性绑定过程中的类型转换机制。在HTTP请求中,表单数据通常以字符串形式传递,而Action类的属性可能是各种类型,如整型、浮点型、...
总的来说,Struts2的类型转换机制为开发者提供了灵活的输入数据处理方式,既可以利用内置转换,也可以自定义转换器以适应复杂的业务场景。正确理解和使用这一机制,可以提高代码的可维护性和用户体验,确保数据的...
本篇文章将深入探讨Struts2中的类型转换机制,包括常规类型转换、自定义类型转换以及错误处理。 首先,我们来看**常规类型转换**。Struts2框架内建了一套完整的类型转换器,能够自动处理常见数据类型,如String、...
Struts2是一个流行的Java Web框架,它...总的来说,Struts2的类型转换机制确保了请求数据与Action属性之间的无缝转换,而国际化支持则使得应用能够适应全球化的用户需求。这两个特性极大地提高了开发效率和用户体验。
Struts2框架提供了一种机制,即类型转换器(Type Converter),用于自动将请求参数转化为预期的数据类型。 在Struts2中,实现类型转换主要有两种方式: 1. 使用内置的类型转换器:Struts2已经内置了一些常见的类型...
本篇文章将深入探讨Struts2中的类型转换机制。 1. **类型转换的概念** 类型转换是指将一个数据类型的值转换为另一个数据类型的过程。在网络请求中,用户输入的数据通常是字符串类型,而服务器端的Action类属性可能...
Struts2内置了一套类型转换机制,能够自动将字符串数据转化为预设的类型。如果默认的转换器无法满足需求,开发者可以自定义转换器,通过实现`Converter`接口并注册到配置中,来实现特定类型的转换。 接下来,我们...
2. **Struts2的类型转换机制** Struts2使用OGNL(Object-Graph Navigation Language)表达式语言来映射请求参数到Action对象。它默认提供了一些内置的转换器,如`String-to-Date`,用于自动进行类型转换。但是,...
总的来说,了解和掌握Struts2的数据类型转换机制对于开发高效、健壮的Java Web应用至关重要。通过自定义转换器,我们可以灵活地控制数据的转换过程,确保应用程序能正确处理用户输入,避免因为类型不匹配导致的错误...
总之,Struts2的类型转换机制是其强大功能之一,它简化了数据绑定过程,使得开发者能够专注于业务逻辑,而不是数据转换的细节。理解并熟练掌握Struts2的类型转换,将有助于提高开发效率和代码质量。在实际项目中,应...
总之,通过自定义数据类型转换器,我们可以对Struts2的默认转换机制进行扩展,以适应不同的业务需求。这不仅增强了框架的功能,也为我们的开发工作带来了便利。在练习中,你可以尝试创建不同的自定义转换器,并理解...
总之,Struts2的类型转换机制是其强大功能的一部分,它简化了Web开发中的数据处理,同时也提供了高度的灵活性和可定制性。通过对这一机制的深入研究,开发者可以更好地控制和优化应用程序的数据处理流程,提升用户...
首先,了解Struts2的类型转换机制。默认情况下,Struts2会根据Action类中属性的数据类型尝试进行自动转换。如果默认转换器无法处理特定类型的转换,我们可以编写自定义的Converter并将其注册到Struts2的配置中。在这...
首先,理解Struts2的类型转换机制。当Struts2接收到HTTP请求时,它会尝试将请求参数与Action类的属性进行绑定。这个过程涉及到了类型转换,Struts2内置了一套转换器机制,能够自动处理基本类型和一些常见类型的转换...
在Struts2框架中,自定义类型转换器是开发者为了满足特定需求,对框架默认的类型转换机制进行扩展的一种方式。Struts2允许我们创建自己的转换器类来处理输入数据,确保模型对象的属性能够正确地被转换为预期的数据...
通过分析和实践这个"struts2的convert工程",开发者可以深入了解Struts2类型转换机制,提高处理用户输入数据的效率和准确性。同时,这也为构建更安全、更健壮的Web应用程序提供了基础。在实际项目中,理解并熟练运用...
本文主要介绍Struts1和Struts2中的自定义类型转换器,并探讨其实现机制。 #### 二、Struts1中的自定义类型转换器 在Struts1中,自定义类型转换器主要是通过继承`com.sun.org.apache.commons.beanutils.Converter`...