如何使用全局Date Format-String以及对其进行不同解释的元素? (JQuery datePicker,JSTL,Java)

时间:2014-03-20 09:27:52

标签: java jquery jquery-ui jsp datepicker

我有一个java网络应用程序,其中我需要的功能之一是获取现有日期,并可以选择另一个来编辑日期。这对我发现的JQuery DatePicker非常有用,它结合常规输入字段,类型文本,触发了datepicker。

我的现有日期(GregorianCalendar)对象从数据库加载,并解析为JavaBeans,并进一步加载到jsp页面和特定的输入字段。

但是,Java的SimpleDateFormat,JSTL函数标记库和DatePicker的formatDate function!不会以相同的方式解释格式样式。 java和JSTL中的MM给出" 03",而在DatePicker中,它给出" March"作为输出。我想要的" 03"通过DatePicker中的模式mm实现,但随后它在JSTL中显示对象分钟(如果有)。

我认为有两种选择。要么我创建两个模式,可以将不同的输出格式化为相同的所需字符串。或者我可以使用datePickers formatDate-function在加载数据时格式化我的java日期对象。

我非常希望我的datepicker只有一个全局字符串模式,因为我希望能够在不破坏代码的情况下更改模式,或者拥有许多依赖项。因此,解决方案2是我想要的。

现在,这是我使用标记库获取格式化日期String的代码:

<fmt:formatDate type="date" 
                pattern="${appdata.dateFormat}"               
                value="${myBeanObject.gregorianCalendarObject.time}">
</fmt:formatDate>

我想要类似的东西:

$.datepicker.formatDate( ${appdata.dateFormat},  
                         ${myBeanObject.gregorianCalendarObject.time});

然而,由于我有限的JQuery / Javascript经验,我不知道如何或在何处放置此代码,以及如何正确调用该函数。我似乎发现的关于调用脚本的所有内容似乎都涉及onclick或&#34; ready&#34; -functions。我只想在构建页面时获取字符串。

我意识到我的问题比我的标题更基本,但是如果有人对如何获得java和DatePicker的格式化模式有另一个想法,我会很高兴听到它们。如果没有,我如何调用脚本,并获得我想要的字符串?

提前致谢。

修改

到目前为止,我已经在我的单例应用程序范围的数据对象中添加了一个小解析器。设置dateFormat-string时,它会自动将String解析为与JQuery DatePicker的不匹配解释匹配的String。但为了使这个真正起作用,我需要添加许多可能的翻译,而不是月份和年份模式。

public void setDateFormat(String dateFormat) {
    this.dateFormat = dateFormat;
    datePickerFormat = dateFormat.replaceAll("yyyy", "yy");
    datePickerFormat = datePickerFormat.replaceAll("M", "m");
}

0 个答案:

没有答案