Jsf 我在页面中有日历,但bean中的属性是字符串,我得到了错误
我使用的是rich calendar,在网页中我应该有calendar,但是bean属性是一个字符串,我不能将其更改为日期,但是在保存表单时我总是有Jsf 我在页面中有日历,但bean中的属性是字符串,我得到了错误,jsf,date,calendar,richfaces,Jsf,Date,Calendar,Richfaces,我使用的是rich calendar,在网页中我应该有calendar,但是bean属性是一个字符串,我不能将其更改为日期,但是在保存表单时我总是有 java.text.ParseException: Unparseable date: "Tue Dec 09 00:00:00 GMT+04:00 2059" java.text.DateFormat.parse(DateFormat.java:357) javax.faces.convert.DateTimeConverter.getAsObj
java.text.ParseException: Unparseable date: "Tue Dec 09 00:00:00 GMT+04:00 2059"
java.text.DateFormat.parse(DateFormat.java:357)
javax.faces.convert.DateTimeConverter.getAsObject(DateTimeConverter.java:398)
org.richfaces.component.UICalendar.getAsDate(UICalendar.java:399)
org.richfaces.renderkit.CalendarRendererBase.getSelectedDate(CalendarRendererBase.java:658)
org.richfaces.renderkit.html.CalendarRenderer.doEncodeEnd(CalendarRenderer.java:451)
org.richfaces.renderkit.html.CalendarRenderer.doEncodeEnd(CalendarRenderer.java:516)
org.ajax4jsf.renderkit.RendererBase.encodeEnd(RendererBase.java:134)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:861)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:242)
我试了很多,但没有任何帮助
有什么想法吗
这是一个转换器
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException {
String pattern = "yyyy-MM-dd, HH:mm:ss aaa";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
Date nDate = null;
if (value == null || value.trim().length() == 0) {
return nDate;
}
try {
nDate = sdf.parse(value);
} catch (ParseException ex) {
}
return nDate;
}
@Override
public String getAsString(FacesContext facesContext, UIComponent uIComponent, Object value) {
String date = "";
try{
if (value == null) {
return "";
}
String pattern = "yyyy-MM-dd, HH:mm:ss aaa";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
Date dateValue = new SimpleDateFormat("yyyy-MM-dd, HH:mm:ss aaa", Locale.ENGLISH).parse(value.toString());
date = sdf.format((Date) dateValue);
}
catch(Exception e){
e.printStackTrace();
}
return date;
}
but it does not work
尝试此格式“EEE-MMM-dd-HH:mm:ss z-yyyy”进行解析使用此格式将字符串转换为日期
String date = "15-09-2011:23:30:45";//your date
DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy:HH:mm:SS");
Date convertedDate = (Date) formatter.parse(date);
使用SimpleDataFormat格式化数据并将日期转换为我更新的转换器代码,它没有帮助,或者有错误我的bean属性是字符串,我无法更改它,我将它保存为字符串,但使用日历,在保存日历时崩溃:(值是否在“yyyy-MM-dd,HH:MM:ss-aaa”中)格式化?没有人看到模型首先被破坏了吗?OP使用的是字符串而不是日期,这是错误的保存日期的模型。虽然这在一个带有
main()
方法的普通Java类中可以自行工作,但这根本不能解决OP的具体问题。请仔细查看stacktrace。