相关疑难解决方法(0)

在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
查看次数

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

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

jsf numbers input zero

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

JSF 2.2将空字符串提交的值解释为null无效

我已经从Java EE 6迁移到Java EE 7,现在使用JSF 2.2,上下文参数INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL似乎不起作用.在JSF 2.1中我将它设置为"true"并且它完美地工作,但现在我总是得到空字符串.

<context-param>
    <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)

谁能说点什么呢?

jsf el jsf-2.2 java-ee-7

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

Tomcat 8(和9)强制行为,空字符串被错误地设置为空字符串

我刚刚迁移到Tomcat 8.我曾经使用系统属性,org.apache.el.parser.COERCE_TO_ZERO=false因此空字符串,数字,布尔值等被视为null.

在Tomcat 8,EL 3.0中,它应该是默认值,但它实际上是在JSF端将null字符串转换为空字符串"".

它应该是一个错误,它应该被纠正,但我无法让它在TomEE快照(Tomcat 8.0.27.0,MyFaces 2.2.8)中运行.

jsf el jsf-2.2 tomee tomcat8

6
推荐指数
1
解决办法
2624
查看次数

对于JSF JPA中的可选字段,使大小验证器忽略null?

假设我有一个带有文本字段的表,名为player,它是null.所以允许空值,但如果不是null(有一个值),文本/字符串的大小必须在10到100之间.我有这个开始:

@Column(name = "player", nullable = true)
@Size(min = 5, max = 100)
private String player;
Run Code Online (Sandbox Code Playgroud)

但是当将字段设置为null时,JSF页面会抛出验证错误.

有没有办法让Size验证器忽略空值?

java validation jsf bean-validation wildfly

0
推荐指数
1
解决办法
1166
查看次数