Struts日期显示格式
一、使用properties配置文件
1.写一个Messages.properties配置文件:
#datetime:
global.format.date={0,date,yyyy-MM-dd}
global.format.time={0,date,HH:mm:ss}
global.format.datetime={0,date,yyyy-MM-dd HH:mm:ss}
global.format.datetime02={0,date,yyyy-MM-dd HH:mm}
#datetime是控制时间格式
2.页面上:<s:text name="global.format.date"><s:param value="deployDate" /></s:text>
其中:<s:text name="global.format.date">控制你要显示的时间格式
<s:param value="deployDate" />是你要显示的时间
<s:text>
二、使用<s:data>标签
<input type="text" value="<s:date name="deployDate" format="yyyy-MM-dd" />" />
其中name="deployDate"是你要显示的时间,format="yyyy-MM-dd"是显示的格式
struts自带的日期格式化,仅支持date类型的数据,因此使用自定义标签扩展此功能
以下为标签主要代码
public boolean start(Writer writer){
boolean result = super.start(writer);
try {
Date date=getDateValue();/*获取日期时间对象*/
SIMPLE_DATE_FORMAT.applyPattern(getTargetFormat());/*设置要显示日期格式*/
writer.write(SIMPLE_DATE_FORMAT.format(date));
} catch (Exception e){
log.error(e.getMessage(),e);
return false;
}
return result;
}
private String getTargetFormat(){
targetPattern = TextProviderHelper.getText(targetPattern, "", stack);
if(StringUtils.isEmptyString(targetPattern)){
if("datetime".equals(dateType)){
targetPattern= SelfCareConst.DATE_DDMMMYYYYHH24MMSS;
}else{
targetPattern = SelfCareConst.DATE_DDMMMYYYY;
}
}
return targetPattern;
}
private Date getDateValue() throws ParseException {
Object obj = stack.findValue(value);
if (obj instanceof Date) {
return (Date) obj;
} else if (obj instanceof String || obj instanceof Integer || obj instanceof Long) {
/*如果在页面直接写value=“201212”等类似,则此value最终会被转换成Long或者Integer。因此在此判断*/
SIMPLE_DATE_FORMAT.applyPattern(getSrcFormat());
return SIMPLE_DATE_FORMAT.parse(String.valueOf(obj));
}else {
log.error("unSupport the type of ["+value+"], the type is ["+obj.getClass().getName()+"]");
return null;
}
}
private String getSrcFormat()
{
srcPattern = TextProviderHelper.getText(srcPattern, "", stack);
if(StringUtils.isEmptyString(srcPattern)){
log.error("Srcpattern is null.");
}
return srcPattern;
}
分享到:
相关推荐
自定义Struts时间转换器可以帮助我们更灵活地处理时间格式,满足不同场景下的时间显示和存储需求。 在Java中,时间的表示通常使用`java.util.Date`、`java.time.LocalDate`或`java.time.LocalDateTime`等类。然而,...
除了JSP页面上的显示格式化,Struts2还允许在Action类中进行格式化。例如,你可以使用Java的`SimpleDateFormat`或`DecimalFormat`类对日期和数字进行处理,然后将格式化后的值返回到`ValueStack`。 在实际应用中,...
为了实现日期格式化,我们可以自定义一个拦截器,或者使用Struts2的`conversion.properties`配置文件来定义日期的格式。例如,我们可以设置`date.format=yyyy-MM-dd`,这样Struts2在回显时会按照这个格式展示日期。 ...
默认情况下,Struts提供了许多内置的转换器,可以处理基本数据类型,如字符串到整数、字符串到日期等。然而,对于更复杂的数据类型,或者需要特殊转换规则的情况,我们就需要创建自定义转换器。 创建自定义转换器的...
为处理日期,我们需要创建一个自定义的转换器,继承自`org.apache.struts2.util.DateConverter`,并覆盖其中的方法,如`convert`和`parse`,以便处理特定的日期格式。 2. **配置Action属性**: 在Action类中,声明...
举一个实际应用的例子,如果项目中需要显示日期而不要时间,可以创建一个自定义的日期类型转换器,覆盖Struts2默认的行为。在上述代码片段中,可以看到一个名为`DateTypeConverter`的类,它继承了`...
这个实例项目展示了如何在实际应用中结合Struts2、国际化、类型转换以及Struts2自定义标签来实现用户管理功能,包括用户数据的增删改查。 首先,我们来看Struts2的核心概念。Struts2作为MVC框架,它负责处理HTTP...
5. **转换器Converter**:Struts2允许自定义转换器来处理数据类型转换,比如将用户输入的字符串转换为日期或数字,确保数据的正确性和一致性。 6. **表单数据验证**:Struts2提供了强大的内置验证框架,可以在...
同时,可以使用 Struts 2 提供的标签库中的 `<s:date>` 标签来格式化日期显示。 3. **时间戳转换**:在接收来自客户端的时间戳时,需要将其转换为日期对象。这可以通过自定义拦截器或 Action 中的方法来实现,利用 ...
- JSP页面负责显示数据和接收用户输入,通过Struts标签库(如struts-tiles或struts-bean标签)与ActionForm或DynaActionForm交互。 通过以上步骤,你可以使用Eclipse构建一个基本的Struts1.2应用程序。不过,实际...
- **自定义转换器**:你可以创建自定义的转换器,重写`convertIfNecessary`方法,当尝试将字符串转换为日期时,添加对非法日期格式的检查和处理。 - **使用拦截器**:Struts2的拦截器机制允许在请求处理之前或之后...
在Struts2中,类型转换和国际化是两个重要的特性,用于处理数据类型之间的转换以及多语言环境下的内容显示。 **类型转换**是Struts2处理请求参数与Action类属性之间数据类型不匹配的过程。当用户通过表单提交请求时...
本示例程序是一个基础的Struts2应用,旨在展示如何使用Struts2进行自定义类型转换和验证框架的集成。 在Struts2中,自定义类型转换是非常实用的功能,允许我们将用户输入的数据自动转换为我们期望的Java对象类型。...
Struts2的标签库不仅限于核心库,还可以通过插件机制添加第三方标签库,如Struts2-dojo-plugin、Struts2-jquery-plugin等,这些插件提供了丰富的UI组件,如日期选择器、下拉树等。 总结,Struts2标签库是其强大功能...
3. **Interceptor(拦截器)**:这是Struts2的一个强大特性,它允许开发者在Action执行前后插入自定义逻辑。例如,我们可以创建一个验证拦截器,用于在Action执行前检查用户输入的有效性。源码中的"拦截器"部分应该...
Struts1支持国际化,允许你根据用户的区域设置来显示和接受日期格式。 6. **JSP标签库**:在显示时间时,可以使用JSTL(JavaServer Pages Standard Tag Library)的`fmt`库进行格式化,如`<fmt:formatDate>`标签。 ...
在MyEclipse 6.0集成开发环境下,使用Struts 1.3版本进行开发时,我们可以利用这个框架来实现对各种输入数据的有效性检查,例如姓名、密码、电话、电子邮件、信用卡号以及日期等常见字段。 1. **验证框架基础** ...
在实际项目中,自定义类型转换器可能用于处理如日期格式、货币格式、枚举类型等特殊数据类型的转换。例如,我们可以创建一个转换器处理日期输入,将用户输入的"yyyy-MM-dd"格式字符串转换为Java的`java.util.Date`...