我有一个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");
}