gpt4 book ai didi

java - javabean 中的日期或字符串声明

转载 作者:行者123 更新时间:2023-12-01 16:04:14 25 4
gpt4 key购买 nike

我是否应该在 javabean 中声明一个属性,该属性保存用户在 HTML 表单上键入的日期值(字符串或日期)?

我觉得我应该声明为日期,但是,因为我对所有表单数据进行服务器验证,如果日期不验证,当我将表单 bean 传回 jsp View 进行更正时,我会丢失日期用户尝试输入的值。

如果我声明为字符串,如果日期不验证,我可以在 bean 中设置字符串值并将 bean 传递回 View ,用户可以看到他们错误输入的内容。

但是通过日期输入的字符串声明,我预见到我的 DAO 会出现问题。我希望能够使用 DAO 实用程序,该实用程序使用 setObject 生成准备语句。

在我的 html 表单中,我请求日期为 mm/dd/yyyy,在 DAO 中我使用 Oracle Date。我不能使用 hibernate 等,因为这是一个公司内部网。

我应该遵循的最佳实践“模式”是什么?

最佳答案

只需将其存储为 Date在模型中。当模型值不存在时,您可以利用EL中的条件运算符来显示提交的值而不是模型值。

<input name="date" value="${empty bean.date ? fn:escapeXml(param.date) : bean.date}" />

JSTL fn:escapeXml() 只是为了避免 XSS attacks .

要更进一步,您可以添加一个带有 Map<String, Object> params 的额外层。其中包含提交的值或最终/验证的值,具体取决于验证结果。

<input name="date" value="${fn:escapeXml(bean.params.date)}" />

关于java - javabean 中的日期或字符串声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2991730/

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