原文 http://blog.csdn.net/whumr1/article/details/8056285
使用spring的mvc,直接将页面参数绑定到对象中,对象中有属性为Date时会报错,此时需要处理下。
同样的,其他的需要处理的类型也可以用这种方法。
在controller中加入代码
@InitBinder
protected void initBinder(HttpServletRequest request,
ServletRequestDataBinder binder) throws Exception {
//对于需要转换为Date类型的属性,使用DateEditor进行处理
binder.registerCustomEditor(Date.class, new DateEditor());
}
DateEditor为自定义的处理类,继承自PropertyEditorSupport,处理方法为public void setAsText(String text) throws IllegalArgumentException
import org.springframework.util.StringUtils;
import java.beans.PropertyEditorSupport;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateEditor extends PropertyEditorSupport {
private static final DateFormat DATEFORMAT = new SimpleDateFormat("yyyy-MM-dd");
private static final DateFormat TIMEFORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private DateFormat dateFormat;
private boolean allowEmpty = true;
public DateEditor() {
}
public DateEditor(DateFormat dateFormat) {
this.dateFormat = dateFormat;
}
public DateEditor(DateFormat dateFormat, boolean allowEmpty) {
this.dateFormat = dateFormat;
this.allowEmpty = allowEmpty;
}
/**
* Parse the Date from the given text, using the specified DateFormat.
*/
@Override
public void setAsText(String text) throws IllegalArgumentException {
if (this.allowEmpty && !StringUtils.hasText(text)) {
// Treat empty String as null value.
setValue(null);
} else {
try {
if(this.dateFormat != null)
setValue(this.dateFormat.parse(text));
else {
if(text.contains(":"))
setValue(TIMEFORMAT.parse(text));
else
setValue(DATEFORMAT.parse(text));
}
} catch (ParseException ex) {
throw new IllegalArgumentException("Could not parse date: " + ex.getMessage(), ex);
}
}
}
/**
* Format the Date as String, using the specified DateFormat.
*/
@Override
public String getAsText() {
Date value = (Date) getValue();
DateFormat dateFormat = this.dateFormat;
if(dateFormat == null)
dateFormat = TIMEFORMAT;
return (value != null ? dateFormat.format(value) : "");
}
}
相关推荐
里面有 Sprng2.5.6+Hibernate3.6+Struts2.3.16的Jar包 已经分好类 但是strut2里面只是包含了最基础的Jar包,其他的按需自己+。 里面还有 jstl标签库的jar 和 数据库MySQL的驱动包 详细配置方法: ...
**Struts2** 是一个基于MVC(模型-视图-控制器)设计模式的开源Web应用程序框架,用于简化Java Servlets和JSP(JavaServer Pages)的开发。Struts2提供了强大的拦截器机制,可以处理请求、验证输入、实现事务管理等...
- **持久层解决方案**:Hibernate是一个ORM(Object-Relational Mapping)框架,简化了数据库操作,将对象模型与关系型数据库之间转换的工作自动化。 - **便捷性**:Hibernate提供了简单易用的API,通过方法调用就...
3. **SpringMVC**:作为Spring框架的一部分,SpringMVC是一个模型-视图-控制器(MVC)架构的Web应用框架,它提供了处理HTTP请求、转发控制、视图渲染等功能。SpringMVC与Spring其他模块无缝集成,使得开发者能方便地...
spring配置 spring配置 spring配置 spring配置 spring配置
3. 创建一个控制器(Controller),该控制器会调用服务类的方法,将返回的对象集合转换为JSON。 4. 使用Jackson库的`ObjectMapper`类将Java对象序列化为JSON字符串。 5. 在控制器中设置HTTP响应的Content-Type为...
3. **服务器位置与距离**:如果服务器距离用户所在地较远,那么数据传输的时间也会增加,从而影响访问速度。尤其是对于国际网站来说,由于国际出口带宽有限,加上长距离传输带来的延迟,访问速度往往不如国内网站。 ...
在实际项目中,还可以进一步优化配置,如设置消费者的自动提交、错误处理机制等,以满足更复杂的需求。 压缩包中的"Kafka与spring集成的代码"文件应该包含了这些示例的完整实现,供你参考和学习。记得根据实际的...
Spring MVC是Spring框架的一部分,专门用于构建Web应用的模型-视图-控制器(MVC)架构。它简化了处理HTTP请求和响应的过程,通过DispatcherServlet进行请求分发,Controller处理业务逻辑,Model管理数据,View负责...
Spring运行helloworld所需的三个基础包,分明为com.springsource.org.apache.commons.logging-1.1.1.jar,spring-beans-5.0.2.RELEASE.jar,spring-core-5.0.2.RELEASE.jar
##### 3. `struts.i18n.encoding` **描述**:指定Struts2进行国际化资源文件编码格式。 **值**:如`UTF-8`。确保在处理多语言资源时能够正确显示各种字符集的内容,避免乱码问题。 ##### 4. `struts....
3. **配置与集成**:在SpringBoot项目中,这些工具类可以通过Spring的配置文件(application.yml或application.properties)进行配置,例如设置默认的生成目录、文件名格式等。同时,这些工具类可以被设计成Spring的...
作用: 1、可以将几个系统的权限都由该系统管理(用户只能管理用户所属组内的角色和权限) 2、可以在此系统框架上开发其他业务逻辑 3、struts2+sprng+hibernate+ajax+html+mysql
资源配置Sprng.xml的重要文件 看到网上资源很少 就给大家分享一下
**3. 安装RabbitMQ** - 下载并安装Erlang运行环境。 - 下载并安装RabbitMQ服务器。 - 启动RabbitMQ,通过默认的管理界面(http://localhost:15672)进行管理,初始用户名和密码均为`guest`。 **4. 添加依赖** 在...
生成Token时,软件可能采用哈希函数、非对称加密算法(如RSA)或者安全伪随机数生成器(SPRNG)等技术,以确保Token的唯一性和不可预测性。此外,Token通常有有效期限制,过期后需要重新获取,这增加了系统的安全性...
包含源代码,发布文档和系统说明文档 开发环境:1、struts2+sprng+hibernate+ajax+html 2、 将所有sql写在了配置文件来代替dao层,简化了开发,增加了可维护性。