A issue I am facing with struts2.0.14's date time picker tag
The problem is that struts2 datetimepicker displayformat attribute must always be set to format of tomcat server date time format else the submitted values are null.
Change Date time setting by in Win 7:
Repro Steps
Expected result
Envi:
Java 6, Struts2.0.14, Firefix 12, tomcat 6.
Any workarounds or fixes through properties or something?
*Note: Do not answer if the answer is to use jquery or some other js lib or an upgrade.
You need to use your custom DateTime converter.
In your xwork-conversion.properties
(create if you don't have one) file put this line:
java.util.Date = org.yourproject.common.StringToDateTimeConverter
And in your StringToDateTimeConverter
, have code something like this
import java.util.*
import java.text.DateFormat.*;
public class StringToDateTimeConverter extends StrutsTypeConverter{
public Object convertFromString(Map context, String[] strings, Class toClass) {
DateFormat DATETIME_FORMAT = getDateInstance(SHORT, Locale.getDefault());
if (strings == null || strings.length == 0 || strings[0].trim().length() == 0) {
return null;
}
try
{
DATETIME_FORMAT.setLenient(false);
return DATETIME_FORMAT.parseObject(strings[0]);
} catch (ParseException e) {
//throw new TypeConversionException(); <-- if you want to catch conversion error
return null;
}
}
public String convertToString(Map context, Object date) {
DateFormat DATETIME_FORMAT = getDateInstance(SHORT, Locale.getDefault());
if (date != null && date instanceof Date) {
return DATETIME_FORMAT.format(date);
} else {
return null;
}
}
}
References:
http://www.roseindia.net/java/java-get-example/java-get-default-locale.shtml