我使用spring为出生日期选择了三个控件(日、月和年)form:select to org.joda.time.localdate。
由于出生日期是可选的,我想它如果日期可以默认为空。不过,出生日期是以今天的日期起首的。即使我在模型中将出生日期设置为null,也会发生这种情况。
这意味着在提交表单时,今天的日期将作为该字段的值发送,这不是我想要的。我不太关心日期是如何存储在数据库中的,只要null表示是清晰的(当然,null要比0000-00-00:00:00更好)。
我怎样才能解决这个问题?我可以为localdate编写一个 Package 器,它的默认值为null,并且只有在表单绑定调用setter时才初始化localdate。这似乎是一个相当普遍的问题,所以也许有更好的方法。
1条答案
按热度按时间wdebmtf21#
我已经找到了解决这个问题的部分方法,但我承认我不明白它为什么有效。将控件移动到jsp标记中有帮助。这在第一页视图中不显示选定的日期。如果用户输入日期并提交,则会在页面刷新中显示。
但是,当表单在selects为空的情况下提交时,使用日期选择器(绑定到今天的日期)将三个selects链接到的隐藏输入的值提交,这是不可取的。如果隐藏的输入也没有被填充的话,这将是理想的,但是我认为用一个初始化日期字段为null或空字符串的对象 Package localdate是实现这一点的唯一方法。这是在第一页加载时显示未选中日期的代码。