相关疑难解决方法(0)

h:绑定到Integer属性的inputText是提交值0而不是null

我们h:inputText在一个绑定到Integer属性的JSF页面中使用a (因此可以接受null).当没有写入的值时h:inputText,表单提交的是0代替null.我们正在使用Trinidad 1.2.2和Tomcat 6.0.20(我们也尝试过Tomcat 6.0.14,因为我们读到这可能发生在某些Tomcat版本上).

这是怎么造成的,我该如何解决?

jsf tomcat integer el zero

15
推荐指数
1
解决办法
6508
查看次数

如何在非必填字段JSR 303上使用@Pattern

如何@Pattern在非强制表单字段上使用约束?

@Pattern(regexp="...")
private String something;
Run Code Online (Sandbox Code Playgroud)

一旦我提交表单,我就会得到预期的验证错误,但是用户可能会将该字段留空,因为这不是必填字段.

PS:我可以编写自己的约束注释.但是,我只想问一种更简单的方法来组合注释或添加注释属性.JSR303实现是hibernate-validator.

java validation spring-mvc bean-validation

12
推荐指数
1
解决办法
1万
查看次数

在Mojarra JSF 2.1中解决错误的INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL

我知道在JSF2中有很多关于将空字符串转换为null的帖子.通常的处方是将以下内容添加到web.xml中.

<context-param>
  <description>Does not appear to work</description>
  <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
  <param-value>true</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)

这根本不起作用 - 根本没有.然后我创建了一个自定义字符串转换器来测试它是否可行.我明确地将它作为转换器添加到我的inputText中(否则它在空白时不会触发).

当INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL设置为true时,转换器接收null,输入文本的setter仍然接收"".

当INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL设置为false(或注释掉)时,转换器接收""并且输入文本的setter接收""(即使在转换器返回null之后).

@FacesConverter(forClass=java.lang.String.class, value="emptyStringToNull")
public class StringConverter implements Converter, Serializable {
    private static final long serialVersionUID = -1121162636180944948L;
    public Object getAsObject(FacesContext context, UIComponent component, String value) {
        if (value == null || value.trim().isEmpty()) {
            return null;
        }
        return value;
    }

    public String getAsString(FacesContext context, UIComponent component, Object object) {
    if (object == null)
        return null;

    return object.toString();
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过(无济于事)在getAsObject中显式设置组件提交的值:

if (component instanceof EditableValueHolder)
    ((EditableValueHolder) component).setSubmittedValue(null);
Run Code Online (Sandbox Code Playgroud)

我正在使用JBoss6(6.1的快照)和JSF …

jsf-2 mojarra jboss6.x

11
推荐指数
1
解决办法
8225
查看次数

使用JSF bean验证在一个字段上的多个验证器

我试图在一个字段进行多次验证

    @NotBlank(message = "{name.required}")
    @Max(value = 25, message = "{long.value}")
    public String name;
Run Code Online (Sandbox Code Playgroud)

JSF:

<h:inputText id="name" value="#{person.name}" size="20">
</h:inputText>
<h:message for="name" style="color:red" />
Run Code Online (Sandbox Code Playgroud)

但是当我将该字段留空时,它会显示两条错误消息.

任何想法如何处理这两种情况,独立验证空和最大长度.

jsf hibernate-validator bean-validation jsf-2

7
推荐指数
1
解决办法
1709
查看次数

如何使数字输入区域最初为空而不是0或0.00?

我有一个输入位置应该得到一个数字.我希望它显示为空.但是,当我运行我的程序时,我默认为0或0.00.我怎么能把它弄空?

jsf numbers input zero

7
推荐指数
1
解决办法
8657
查看次数

如何将 Web 服务中的“null”值表示为真正的 null 或空字符串,而不是“null”字符串

在我的应用程序中,我使用 JSF 和 Java Web 服务。当我的任何 Web 服务函数返回一个null值时,它始终表示为“null”字符串。因此,我无法使用 EL 表达式来#{empty object}测试null值或空字符串。

我想问是否有一种方法可以进行配置,使 Java Web Services 将返回null值作为空字符串,或者 JSF/EL 可以将“null”字符串理解为null值。

java string null web-services jsf-2

5
推荐指数
1
解决办法
1729
查看次数