如何将全局DateFormat字符串与对其进行不同解释的元素一起使用?(JQuery日期选择器,JSTL,Java)

如何将全局DateFormat字符串与对其进行不同解释的元素一起使用?(JQuery日期选择器,JSTL,Java),java,jquery,jquery-ui,jsp,datepicker,Java,Jquery,Jquery Ui,Jsp,Datepicker,我有一个java web应用程序,其中我需要的功能之一是获取一个现有日期,并可以通过选择另一个日期来编辑该日期。我发现JQuery日期选择器与触发日期选择器的常规输入字段(键入text)结合使用,效果非常好 My existing date(Gregorianalendar)对象从数据库加载,并解析为JavaBeans,然后进一步加载到jsp页面和特定的输入字段中 然而,Java的SimpleDataFormat、JSTL函数标记库和DatePicker的!不以相同的方式解释格式样式。java和

我有一个java web应用程序,其中我需要的功能之一是获取一个现有日期,并可以通过选择另一个日期来编辑该日期。我发现JQuery日期选择器与触发日期选择器的常规输入字段(键入text)结合使用,效果非常好

My existing date(Gregorianalendar)对象从数据库加载,并解析为JavaBeans,然后进一步加载到jsp页面和特定的输入字段中

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

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

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

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

<fmt:formatDate type="date" 
                pattern="${appdata.dateFormat}"               
                value="${myBeanObject.gregorianCalendarObject.time}">
</fmt:formatDate>
然而,由于我有限的JQuery/Javascript经验,我不知道如何或在何处放置此代码,以及如何正确调用该函数。我发现的关于调用脚本的一切似乎都涉及onclick或“ready”函数。我只想在构建页面时获取字符串

我意识到我的问题比我的标题更基本,但如果有人对如何让java和DatePicker的格式模式发挥作用有其他想法,我会很高兴听到他们的。如果没有,我如何调用脚本,并获得我想要的字符串

提前谢谢

编辑

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

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

为什么不在jquery中验证客户端,只输入特定格式的日期呢?如果您的意思是验证用户输入,那么这永远不会直接适用。用户不能在文本字段中手动输入任何内容。我想要的是一种能够跨两种不同解释方式使用单一格式模式的方法。从数据库加载数据时,字符串由JSTL标记格式化,并放入文本字段(输入)。但是,除非模式符合为日期选择器指定的模式,否则当用户将焦点放在文本字段(该字段将自动打开日期选择器)时,日期选择器将不会在正确的日期打开。
public void setDateFormat(String dateFormat) {
    this.dateFormat = dateFormat;
    datePickerFormat = dateFormat.replaceAll("yyyy", "yy");
    datePickerFormat = datePickerFormat.replaceAll("M", "m");
}