我有一个简单的 Groovy bean,看起来像这样:
class GroovyBean {
Integer id
String title
}
然后,该 bean 在 JSP 页面上使用,以支持带有标题文本输入的基本 HTML 表单。对于数据库,标题列设置为不可为空。这意味着,当用户将此字段留空并提交(通过 POST 完成)时,会引发异常。我发现对 bean 的以下更改解决了这个问题:
class GroovyBean {
Integer id
String title = ""
}
但是我有点困惑这是如何解决的。我的问题是,当用户将标题输入留空并提交时,现在会发生什么?我认为我默认设置的这个空字符串会被 HTML 表单发送的 null 覆盖,但这种情况并没有发生。这里的一切似乎都工作正常,包括清除现有标题并重新提交。如果有人可以向我提供有关 Groovy 生成的 setter 如何处理此问题的信息,我将不胜感激。谢谢。
最佳答案
我认为这种行为不是由 Groovy 引起的,这可能是由于容器的配置引起的:您通常可以配置希望容器如何处理空值。
如果您使用的是 Tomcat,则可以将属性 ALLOW_EMPTY_QUERY_STRING 配置为 true
,这样它将允许空字符串值 check out the docs .
关于html - 为 Groovy bean 属性设置默认值的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17110459/