`

h:inputText return a empty string instead of NULL

    博客分类:
  • JSF
阅读更多

You can configure JSF 2.x to interpret empty submitted values as null by the following context-param in web.xml:
<context-param>
    <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
    <param-value>true</param-value>
</context-param>

Here is a long explanation. Section 11.1.3 of the JSF spec says:

javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL -- If this param is set, and
calling toLowerCase().equals("true") on a String representation of its value returns true, any
implementation of UIInput.validate() must take the following additional action.
If the javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL context parameter value is
true (ignoring case), and UIInput.getSubmittedValue() returns a zero-length String call
UIInput.setSubmittedValue(null) and continue processing using null as the current submitted value.

This is indeed being done. However, when UIInput.updateModel() is called, that triggers the EL Evaluation, which will coerce the value based on its expected type. If it sees that the expected type is a String then it will convert a null to empty string. So eventually, your managed bean will be set with empty string instead of null. That behavior is governed by the EL spec.

分享到:
评论

相关推荐

    解决dbf Failed to parse Number: For input string: "-.---"

    本文将深入探讨标题和描述中提到的问题:“解决dbf Failed to parse Number: For input string: "-.---""”,以及如何在不依赖特定jar包的情况下处理DBF文件。 首先,"Failed to parse Number: For input string: ...

    jsf常用标签整理

    总结,JSF中的常用标签包括&lt;h:commandLink&gt;、&lt;h:commandButton&gt;、&lt;h:selectOneMenu&gt;、&lt;h:outputLabel&gt;、&lt;h:outputText&gt;、&lt;h:messages&gt;、&lt;h:inputText&gt;、&lt;h:inputSecret&gt;、&lt;h:inputTextarea&gt;、&lt;h:inputHidden&gt;、&lt;h:...

    jsf用户输入验证

    例如,`&lt;h:inputText&gt;` 组件有一个 `required` 属性,可以用来指定某个字段是否为必填项。 ##### 示例代码: ```xml &lt;h:form&gt; &lt;h:inputText value="#{bean.name}" required="true"&gt; &lt;f:validateLength minimum=...

    java.lang.NumberFormatException For inputstring 4294967295处理方法

    "For input string: '4294967295'" 这个错误消息表明在尝试转换的字符串 `'4294967295'` 过程中出现了问题。让我们深入探讨这个异常的原因和解决方法。 首先,我们需要理解 `4294967295` 是一个32位无符号整数的...

    Here are a few algorithmic problems for you to try: Problem 1:

    Given a string of length n, write a function to find the longest palindromic substring. Example: input = "babad" -&gt; output = "bab" or "aba" Problem 2: Given a sorted array of integers, write a ...

    java.lang.IllegalArgumentException:Input == null的异常处理

    Caused by: java.lang.IllegalArgumentException: input == null! at javax.imageio.ImageIO.read(ImageIO.java:1388) at com.pleanwar.fiying.FlyingObject.loadImage(FlyingObject.java:52) at ...

    JSF H 标签在HTML中的对应元素

    4. UIInput (h:inputText, h:inputSecret, h:inputHidden, h:inputTextArea) - `h:inputText` 用于创建文本输入字段。 ```html &lt;h:inputText id="name" value="#{bean.name}"/&gt; ``` 对应的HTML是: ```html ...

    JSF标签的使用登录i

    在上面的代码中,`&lt;h:outputLabel&gt;`标签与`&lt;h:inputText&gt;`和`&lt;h:inputSecret&gt;`相关联,提供了友好的标签提示。`#{loginBean}`是Managed Bean的引用,用于存储登录信息和处理登录逻辑。 Managed Bean是JSF中的一个...

    String1.java

    System.out.println("Please type in a string:"); String userInputString = br.readLine(); ``` 这里使用了`BufferedReader`来提高读取效率,并通过`readLine()`方法获取用户的一行输入,存储到`userInputString`...

    jsf 用户登陆界面

    例如,可以添加验证约束到`&lt;h:inputText&gt;`和`&lt;h:inputSecret&gt;`,如`required`属性确保字段不为空。 6. **导航和页面跳转** - `login()`方法返回的字符串代表了导航规则,可以配置在`faces-config.xml`中或者使用`...

    idea连接达梦数据库出现input string "8"问题,驱动已修复

    本文将深入探讨在IntelliJ IDEA (简称IDEA) 中连接达梦数据库时遇到的“input string \"8\"”问题,以及如何通过修复驱动程序来解决这个问题。 达梦数据库是一款国产的高性能关系型数据库管理系统,广泛应用于政府...

    C标准库文档,包括标准库中12个头文件的描述

    cstdlib 的描述文档 * &lt;assert.h&gt; : Diagnostics * &lt;ctype.h&gt; : Character Class Tests * &lt;errno.h&gt; : Error Codes Reported by (Some) ... * &lt;string.h&gt; : String functions * &lt;time.h&gt; : Time and Date functions

    文件转换(inputString)

    在这个场景中,"文件转换(inputString)"可能是指将一个字符串(String)形式的数据转换为InputStream对象,或者反过来,将InputStream对象转化为字符串。这通常发生在我们需要在网络上传输数据、存储数据或者在...

    java实验4.1(String1.java )

    Create a String object that accepts input from the user. Referencing the JDK docs, execute 2 different methods on the String. Print the results of the methods. Result: Input a string: How are you ...

    ACM的一道题--Parenthesize the string

    Find an efficient algorithm that examines a string of these symbols, say bbbbac, and decides whether or not it is possible to parenthesize the string in such a way that the value of the resulting ...

    jsf动态创建表单控件实例.

    这些控件可以通过`&lt;h:inputText&gt;`、`&lt;h:commandButton&gt;`等标签在页面上声明。每个控件都有自己的属性,例如标签(label)、值(value)和事件处理器(actionListener)等。 2. **动态创建的必要性**: 在某些场景...

    jsf获取表单的两种方法

    &lt;h:inputText id="username" value="#{bean.username}" /&gt; &lt;h:commandButton value="提交" action="#{bean.submit}" /&gt; &lt;/h:form&gt; ``` 在对应的后台 Managed Bean 中,我们可以定义一个`submit`方法来获取`...

    JSF2-Getting-Started.zip_Getting Started

    1. **`h:inputText`**:用于创建文本输入框。 2. **`h:commandButton`**:创建提交按钮,触发动作事件。 3. **`h:outputText`**:显示静态或动态文本。 4. **`h:form`**:定义一个表单,通常包含一组输入组件和命令...

    JSF2.0详解(英文版)

    1. 文本字段:在`page.xhtml`中,`&lt;h:inputText&gt;`用于创建一个文本输入字段,其值与`SampleBean`中的`luckyNumber`属性绑定。例如: ```xml &lt;h:inputText value="#{bean1.luckyNumber}"&gt; ``` 对应的Java代码位于`WEB...

Global site tag (gtag.js) - Google Analytics