gpt4 book ai didi

java - 如何使用条纹框架将日期从 JSP 传递到 Java?

转载 作者:行者123 更新时间:2023-11-30 08:06:37 24 4
gpt4 key购买 nike

我正在使用 Stripes Framework 并试图从 jsp 获取 DateTime,但由于某种原因,setter 总是将 null 传递给它。

JSP 片段:

<stripes:form name="dateForm" action="some.actionBean.url">
<stripes:hidden name="myDate" value="12-23-2015 12:00" />
</stripes:form>

ActionBean 片段:

private DateTime myDate;

public void setMyDate(DateTime date){
//when the setter gets called date is null, but why?
this.myDate = date;
}
public DateTime getMyDate(){
return this.myDate;
}

我已经尝试了很多东西,比如

  • 尝试将值设置为不同的时间格式
  • 试图让setter 接受一个字符串,然后转换为 DateTime(这没有工作,因为字符串也是空的)
  • 尝试了不同的条纹标签

还没有运气,我做错了什么?

我基本上是在摸黑,因为找不到 Tag Lib 文档。关于official site它链接到 broken page .

最佳答案

您正在绑定(bind)到 DateTime 对象。 Stripes 有一个内置的 TypeConverter 用于 Date 对象,但没有用于 DateTime

当您将 myDate 更改为 java.util.Date 时,Stripes 的 DateTypeConverter 将拾取它。

否则,例如,如果您需要支持 joda.time.DateTime,您将需要编写自己的自定义 TypeConverter(您不需要它,因为它打印在下面):

public class JodaDateTimeTypeConverter implements TypeConverter<DateTime> {

@Override
public DateTime convert(String input, Class<? extends DateTime> type, Collection<ValidationError> errors) {

DateTimeFormatter formatter = DateTimeFormat.forPattern("MM-dd-yyyy HH:mm");
DateTime datetime = formatter.parseDateTime(input);
return datetime;
}

@Override
public void setLocale(Locale arg0) {
}
}

并将此自定义 TypeConverter 类放入(其中一个)您的 Stripes 扩展包中,该扩展包可以在名为 StripesFilter 的过滤器下的 web.xml 中定义。

<init-param>
<param-name>Extension.Packages</param-name>
<param-value>path.to.my.extensionpackage</param-value>
</init-param>

关于java - 如何使用条纹框架将日期从 JSP 传递到 Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34258339/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com