【问题标题】:JSF2.0 Blank Input field in is not setting as NULLJSF2.0 中的空白输入字段未设置为 NULL
【发布时间】:2011-08-31 04:34:39
【问题描述】:

我有一个支持 bean,其中 fileld 为 Long 、 Double 、 Integer 、 String 当我没有在输入字段中指定任何内容时,它会将 Long、Integer 和 Double 设为零,而不是 null。我正在使用 tomcat 部署我的应用程序。有什么解决办法吗?我尝试了以下上下文参数,但它不起作用。

<context-param>
    <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
    <param-value>true</param-value>
</context-param>

【问题讨论】:

    标签: java jsf jsf-2


    【解决方案1】:

    注意:如果元素放在&lt;ui:repeat&gt; 中,上述方法不起作用,但如果替换为&lt;c:forEach&gt; 则有效

    【讨论】:

      【解决方案2】:

      将以下 VM 参数添加到 Tomcat 启动选项。

      -Dorg.apache.el.parser.COERCE_TO_ZERO=false

      您还需要确保您已声明 faces-config.xml 符合 JSF 2.0 规范。

      <?xml version="1.0" encoding="UTF-8"?>
      <faces-config
          xmlns="http://java.sun.com/xml/ns/javaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
          version="2.0">
          <!-- Your config here -->
      </faces-config>
      

      否则将不会激活 JSF 2.0 特定设置/功能。

      【讨论】:

      • 您好 BAlusC 感谢您的回复。我们正在使用 tomcat 7.0.x 正如你所说 faces-config.xml 指向 jsf2.0 。我们还在 web.xml 中添加了上下文参数,但它仍然无法正常工作
      • 尝试在 Tomcat 启动选项中添加-Dorg.apache.el.parser.COERCE_TO_ZERO=false
      • 我已经在 windows 上运行了 Tomcat7 的压缩版本,告诉我必须在哪里添加这一行 谢谢
      • 我们还得到了一些代码,例如 'System.getProperties().put("org.apache.el.parser.COERCE_TO_ZERO", "false");'但这也行不通
      • 如果你通过catalina.bat运行它,那么你可以在那里编辑它。如果你用 Eclipse 之类的 IDE 运行它,你可以在服务器设置中编辑它。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 2015-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多