`
zhijieqing
  • 浏览: 4214 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
最近访客 更多访客>>
社区版块
存档分类
最新评论

自定义struts日期显示格式

阅读更多
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;
    }
0
3
分享到:
评论

相关推荐

    自定义struts时间转换器

    自定义Struts时间转换器可以帮助我们更灵活地处理时间格式,满足不同场景下的时间显示和存储需求。 在Java中,时间的表示通常使用`java.util.Date`、`java.time.LocalDate`或`java.time.LocalDateTime`等类。然而,...

    Struts2 格式化日期、时间和数字

    除了JSP页面上的显示格式化,Struts2还允许在Action类中进行格式化。例如,你可以使用Java的`SimpleDateFormat`或`DecimalFormat`类对日期和数字进行处理,然后将格式化后的值返回到`ValueStack`。 在实际应用中,...

    struts2的日期回显

    为了实现日期格式化,我们可以自定义一个拦截器,或者使用Struts2的`conversion.properties`配置文件来定义日期的格式。例如,我们可以设置`date.format=yyyy-MM-dd`,这样Struts2在回显时会按照这个格式展示日期。 ...

    Struts 自定义转换器

    默认情况下,Struts提供了许多内置的转换器,可以处理基本数据类型,如字符串到整数、字符串到日期等。然而,对于更复杂的数据类型,或者需要特殊转换规则的情况,我们就需要创建自定义转换器。 创建自定义转换器的...

    让struts能处理日期类型

    为处理日期,我们需要创建一个自定义的转换器,继承自`org.apache.struts2.util.DateConverter`,并覆盖其中的方法,如`convert`和`parse`,以便处理特定的日期格式。 2. **配置Action属性**: 在Action类中,声明...

    Struts2的自动类型转换及自定义类型转换[文].pdf

    举一个实际应用的例子,如果项目中需要显示日期而不要时间,可以创建一个自定义的日期类型转换器,覆盖Struts2默认的行为。在上述代码片段中,可以看到一个名为`DateTypeConverter`的类,它继承了`...

    Struts2实例 国际化 类型转换 struts标签

    这个实例项目展示了如何在实际应用中结合Struts2、国际化、类型转换以及Struts2自定义标签来实现用户管理功能,包括用户数据的增删改查。 首先,我们来看Struts2的核心概念。Struts2作为MVC框架,它负责处理HTTP...

    struts2教程word文档格式

    5. **转换器Converter**:Struts2允许自定义转换器来处理数据类型转换,比如将用户输入的字符串转换为日期或数字,确保数据的正确性和一致性。 6. **表单数据验证**:Struts2提供了强大的内置验证框架,可以在...

    struts-date-operator2【时间控制】

    同时,可以使用 Struts 2 提供的标签库中的 `&lt;s:date&gt;` 标签来格式化日期显示。 3. **时间戳转换**:在接收来自客户端的时间戳时,需要将其转换为日期对象。这可以通过自定义拦截器或 Action 中的方法来实现,利用 ...

    Eclipse开发Struts1.2

    - JSP页面负责显示数据和接收用户输入,通过Struts标签库(如struts-tiles或struts-bean标签)与ActionForm或DynaActionForm交互。 通过以上步骤,你可以使用Eclipse构建一个基本的Struts1.2应用程序。不过,实际...

    Struts处理类型转换错误,如时间转换

    - **自定义转换器**:你可以创建自定义的转换器,重写`convertIfNecessary`方法,当尝试将字符串转换为日期时,添加对非法日期格式的检查和处理。 - **使用拦截器**:Struts2的拦截器机制允许在请求处理之前或之后...

    struts2类型转换和国际化

    在Struts2中,类型转换和国际化是两个重要的特性,用于处理数据类型之间的转换以及多语言环境下的内容显示。 **类型转换**是Struts2处理请求参数与Action类属性之间数据类型不匹配的过程。当用户通过表单提交请求时...

    struts2简单例子源码

    本示例程序是一个基础的Struts2应用,旨在展示如何使用Struts2进行自定义类型转换和验证框架的集成。 在Struts2中,自定义类型转换是非常实用的功能,允许我们将用户输入的数据自动转换为我们期望的Java对象类型。...

    Struts2 标签使用简介

    Struts2的标签库不仅限于核心库,还可以通过插件机制添加第三方标签库,如Struts2-dojo-plugin、Struts2-jquery-plugin等,这些插件提供了丰富的UI组件,如日期选择器、下拉树等。 总结,Struts2标签库是其强大功能...

    Struts2框架源码

    3. **Interceptor(拦截器)**:这是Struts2的一个强大特性,它允许开发者在Action执行前后插入自定义逻辑。例如,我们可以创建一个验证拦截器,用于在Action执行前检查用户输入的有效性。源码中的"拦截器"部分应该...

    struts1 时间转换的实现 demo

    Struts1支持国际化,允许你根据用户的区域设置来显示和接受日期格式。 6. **JSP标签库**:在显示时间时,可以使用JSTL(JavaServer Pages Standard Tag Library)的`fmt`库进行格式化,如`&lt;fmt:formatDate&gt;`标签。 ...

    struts的validate框架验证

    在MyEclipse 6.0集成开发环境下,使用Struts 1.3版本进行开发时,我们可以利用这个框架来实现对各种输入数据的有效性检查,例如姓名、密码、电话、电子邮件、信用卡号以及日期等常见字段。 1. **验证框架基础** ...

    Struts2 自定类型转换器(三十四)

    在实际项目中,自定义类型转换器可能用于处理如日期格式、货币格式、枚举类型等特殊数据类型的转换。例如,我们可以创建一个转换器处理日期输入,将用户输入的"yyyy-MM-dd"格式字符串转换为Java的`java.util.Date`...

Global site tag (gtag.js) - Google Analytics