在Jsp项目中,很多时候需要用到字符串到日期类型的转化,一般有两种方法处理:
1、在useBean的Model中的set方法的参数为字符串类型,在set方法中将字符串转化为日期类型,然后赋值给日期字段,不过这种方式限制的Model的使用场合,不利于重用。
2、通过java.beans.PropertyEditorManager的registerEditor方法,注册一个我们自定义的针对字符串转化为日期的类,这个类需要继承自PropertyEditorSupport类。这种方法处理过后,就可以实现字符串类型自动转化为日期型了,一定程度上增强了Bean的重用,不过也有它的确定,比如在整个项目中要设定统一的时间字符串格式,当然你也可以把字符串转化器做的强大一点,让它支持所有的日期格式,。
第一中方式实现较为方便,下面就针对第二种方式的实现做一下介绍,过程很简单:
首先,创建一个DatePropertyEditor类,使其继承自java.beans.PropertyEditorSupport类,然后重载它的getValue和setAsText方法,示例代码如下:
/**
*
*/
package com.zywang.util;
import java.beans.PropertyEditorSupport;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* JSP:userBean中字符串转化为时间类型
* @author ZYWANG 2009-6-20
*/
public class DatePropertyEditor extends PropertyEditorSupport {
private Date date = null;
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
/*
* (non-Javadoc)
*
* @see java.beans.PropertyEditorSupport#getValue()
*/
@Override
public Date getValue() {
return date;
}
/*
* (non-Javadoc)
*
* @see java.beans.PropertyEditorSupport#setAsText(java.lang.String)
*/
@Override
public void setAsText(String text) throws IllegalArgumentException {
try {
date = dateFormat.parse(text);
} catch (ParseException e) {
date = null;
}
}
}
然后,使用java.beans.PropertyEditorManager的registerEditor方法将其注册进来
java.beans.PropertyEditorManager.registerEditor(java.util.Date.class, DatePropertyEditor.class);
该方法的第一个参数为我们要被编辑类型的 Class 对象 ,第二个参数为 编辑器类的 Class 对象,大家可以通过查看JDK的文档查找相关的方法说明
另外再说一点,在实际项目中为了操作方便,建议在过滤器中注册这个编辑器类,如下程序过滤器实现了两个功能,一是统一了编码格式,二是注册了我们的时间转化的编辑器。示例代码如下:
package com.zywang.util;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
* JSP页面乱码处理过滤器
* @author ZYWANG 2009-6-20
* Servlet Filter implementation class ChangeEncoding
*/
public class SetCharacterEncodingFilter implements Filter {
/**
* Default constructor.
*/
public SetCharacterEncodingFilter() {
}
/**
* @see Filter#destroy()
*/
public void destroy() {
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// place your code here
request.setCharacterEncoding("GB18030");
// pass the request along the filter chain
chain.doFilter(request, response);
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
//注册JavaBean日期转化器
java.beans.PropertyEditorManager.registerEditor(java.util.Date.class, DatePropertyEditor.class);
}
}
附件为一个演示用的DEMO,欢迎大家指正!
分享到:
相关推荐
例如,可以使用字符串对象的`.toLowerCase()`方法将字符串转换为小写。 示例: ```jsp 假设request中有名为name的字符串 --%> ${name}".toLowerCase() %> ``` ##### 3.2 时间日期的格式化 虽然EL本身并不直接支持...
- 初始化一个长度为42的字符串数组`days`,用于存放日历表中的每一天。 - 循环填充实际的日期值到`days`数组中。 - 构建HTML字符串`face`,其中包含了完整的日历布局。 #### 关键技术点总结 - **使用`<jsp:...
- **用途**: 获取bean的属性值,并将其转化为字符串后插入到输出页面中。 - **示例**: `<jsp:getProperty name="beanName" property="propertyName" />` - **说明**: 此标签常用于显示bean中的属性值,方便页面...
JSP表达式 `<%=...%>` 直接将Java表达式的值转换为字符串并插入到HTML输出中。而脚本元素 `<%...%>` 可以包含任意的Java代码,用于处理逻辑和计算。 **4. JSP对象及其活动范围** JSP页面有四个内置对象:Request、...
- JSP表达式 (`<%= %>`): 用于将Java表达式的值转化为字符串并输出到客户端。 - 脚本元素 (`<% ... %>`):允许在JSP页面中编写Java代码块,执行计算或逻辑操作。 4. **JSP自定义标签** - 如果项目中存在复杂的...
- 简单字符串:`<%="Hello World"%>` - 简单加法:`<%=100+200%>` - 内置对象:`()%>` 2. **脚本片段(Scriplet)** 脚本片段使用`<%...%>`或`<jsp:scriplet>`标签,用于插入Java代码段。这部分代码将被编译成...
`<%=...%>` 表达式标签会将Java表达式的值转换为字符串并插入到HTML输出中。例如: ```jsp 用户ID: () %> ``` ### 4. JSP动作 JSP还提供了许多内置的动作标签,如`<jsp:include>`、`<jsp:forward>`、`<jsp:...
- 表达式(Expressions)使用`<%=...%>`,将Java变量转换为字符串输出。 ```jsp 你好, 今天是 <%= new Date().getDate() %> 号,星期 <%= new Date().getDay() %> ``` 3. **JSP内置对象**:JSP提供了多个内置...
- **request对象**:`ServletRequest`的一个实例,用于封装客户端的HTTP请求信息,包括标题头(Header)、查询字符串等。 以上知识点涵盖了JSP期末复习的重要内容,有助于理解JSP的工作原理和技术细节。
在JSP页面中,通过`<jsp:useBean>`指令创建了一个名为`cc`的bean对象,并设置其类为`dbclass.ErrorCheck`。然后,实例化了`ErrorCheck`类的对象`ec`,并通过一系列方法调用(如`setFormName`、`numericCheck`等)来...
`<%=...%>`是JSP表达式,它会将Java表达式的值转换为字符串并插入到HTML输出中。在这里,我们看到如何使用这些表达式来显示日期和时间。 第6页到第8页介绍了JSP的指令。页面指令(如`<%@ page ... %>`)允许开发者...
声明元素允许我们在JSP页面中声明变量或方法,如`! int count = 0; %>`。脚本let元素用于定义局部变量,如`<%= new Date() %>`。表达式元素则将Java表达式的值转换为字符串并输出到HTML,如`() %>` 2. **JSP指令** ...
- JSP支持JavaBean,JavaBean是符合特定规范的Java类,通常封装了一些业务逻辑和状态信息,可以在JSP页面中通过`jsp:useBean`标签进行实例化和操作,增强了代码的复用性。 7. **JSP执行过程** - 客户端发送HTTP...
4. **表达式**(`<%= ... %>`):表达式用于将Java表达式的值转换为字符串,并直接输出到页面上。例如,`<%=locale%>`将地区的值插入到HTML中。 5. **jsp:include**元素:这个动作元素用于包含其他页面的内容,类似...
`now()` 方法获取当前日期和时间,`format()` 方法则根据指定的模式将其格式化为字符串。 3. **使用Servlet API的RequestDispatcher转发获取时间** 这种方法是通过一个单独的Servlet处理时间获取,然后将结果转发...
在这个例子中,声明了`Date date`对象和字符串变量`sql`、`rs`,以及获取当前日期。 3. **JSP表达式(Expression Language, EL)**:`<%= %>` 用于将Java表达式的值输出到HTML响应中。在代码中,没有直接使用EL,但...
在上述例子中,`<%= new java.util.Date() %>`会将服务器当前时间以字符串形式输出到页面上。 综上所述,JSP是Java Web开发中的重要工具,它简化了动态内容的生成,提供了与Servlet相似的功能,但更加面向视图。...
3. 数据类型:MySQL支持多种数据类型,如数值类型(INT、FLOAT)、字符串类型(VARCHAR、TEXT)、日期时间类型(DATE、TIMESTAMP)等。 4. 索引:索引能提高查询速度,包括主键索引、唯一索引、普通索引和全文索引...