将默认值设置为Groovy bean属性的行为

时间:2013-06-14 14:08:58

标签: html jsp groovy

我有一个简单的Groovy bean,看起来像这样:

class GroovyBean {
    Integer id
    String title
}

然后在JSP页面上使用此bean来支持带有标题文本输入的基本HTML表单。对于数据库,标题列设置为不可为空。这意味着,当用户将此字段留空并提交(通过POST完成)时,会抛出异常。我发现bean的以下更改修复了这个问题:

class GroovyBean {
    Integer id
    String title = ""
}

我有点困惑,但是如何修复它。我问的是,当用户将标题的输入留空并提交时,会发生什么?我认为我默认设置的这个空字符串将被HTML表单中发送的null覆盖,但这种情况并没有发生。此处的所有内容似乎都能正常运行,包括清除现有标题并重新提交。如果有人能够提供有关Groovy生成的setter如何处理此信息的信息,我将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:2)

我不认为这种行为是由Groovy引起的,这可能是由于容器的配置造成的:通常可以配置容器处理空值的方式。

如果您使用的是Tomcat,则可以将属性ALLOW_EMPTY_QUERY_STRING配置为true,这样它将允许空字符串值check out the docs