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: "-.---""”,以及如何在不依赖特定jar包的情况下处理DBF文件。 首先,"Failed to parse Number: For input string: ...
总结,JSF中的常用标签包括<h:commandLink>、<h:commandButton>、<h:selectOneMenu>、<h:outputLabel>、<h:outputText>、<h:messages>、<h:inputText>、<h:inputSecret>、<h:inputTextarea>、<h:inputHidden>、<h:...
例如,`<h:inputText>` 组件有一个 `required` 属性,可以用来指定某个字段是否为必填项。 ##### 示例代码: ```xml <h:form> <h:inputText value="#{bean.name}" required="true"> <f:validateLength minimum=...
"For input string: '4294967295'" 这个错误消息表明在尝试转换的字符串 `'4294967295'` 过程中出现了问题。让我们深入探讨这个异常的原因和解决方法。 首先,我们需要理解 `4294967295` 是一个32位无符号整数的...
Given a string of length n, write a function to find the longest palindromic substring. Example: input = "babad" -> output = "bab" or "aba" Problem 2: Given a sorted array of integers, write a ...
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 ...
4. UIInput (h:inputText, h:inputSecret, h:inputHidden, h:inputTextArea) - `h:inputText` 用于创建文本输入字段。 ```html <h:inputText id="name" value="#{bean.name}"/> ``` 对应的HTML是: ```html ...
在上面的代码中,`<h:outputLabel>`标签与`<h:inputText>`和`<h:inputSecret>`相关联,提供了友好的标签提示。`#{loginBean}`是Managed Bean的引用,用于存储登录信息和处理登录逻辑。 Managed Bean是JSF中的一个...
System.out.println("Please type in a string:"); String userInputString = br.readLine(); ``` 这里使用了`BufferedReader`来提高读取效率,并通过`readLine()`方法获取用户的一行输入,存储到`userInputString`...
例如,可以添加验证约束到`<h:inputText>`和`<h:inputSecret>`,如`required`属性确保字段不为空。 6. **导航和页面跳转** - `login()`方法返回的字符串代表了导航规则,可以配置在`faces-config.xml`中或者使用`...
本文将深入探讨在IntelliJ IDEA (简称IDEA) 中连接达梦数据库时遇到的“input string \"8\"”问题,以及如何通过修复驱动程序来解决这个问题。 达梦数据库是一款国产的高性能关系型数据库管理系统,广泛应用于政府...
cstdlib 的描述文档 * <assert.h> : Diagnostics * <ctype.h> : Character Class Tests * <errno.h> : Error Codes Reported by (Some) ... * <string.h> : String functions * <time.h> : Time and Date functions
在这个场景中,"文件转换(inputString)"可能是指将一个字符串(String)形式的数据转换为InputStream对象,或者反过来,将InputStream对象转化为字符串。这通常发生在我们需要在网络上传输数据、存储数据或者在...
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 ...
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 ...
这些控件可以通过`<h:inputText>`、`<h:commandButton>`等标签在页面上声明。每个控件都有自己的属性,例如标签(label)、值(value)和事件处理器(actionListener)等。 2. **动态创建的必要性**: 在某些场景...
<h:inputText id="username" value="#{bean.username}" /> <h:commandButton value="提交" action="#{bean.submit}" /> </h:form> ``` 在对应的后台 Managed Bean 中,我们可以定义一个`submit`方法来获取`...
1. **`h:inputText`**:用于创建文本输入框。 2. **`h:commandButton`**:创建提交按钮,触发动作事件。 3. **`h:outputText`**:显示静态或动态文本。 4. **`h:form`**:定义一个表单,通常包含一组输入组件和命令...
1. 文本字段:在`page.xhtml`中,`<h:inputText>`用于创建一个文本输入字段,其值与`SampleBean`中的`luckyNumber`属性绑定。例如: ```xml <h:inputText value="#{bean1.luckyNumber}"> ``` 对应的Java代码位于`WEB...