2010-12-03 64 views
0

我一直在这个问题上停留了一段时间。我发现了一个早期的帖子里BalusC在JSF 2.0没有输入集的JSF - UIInput组件字符串属性为空字符串

创建自己的转换器被称为“EmptyToNullConverter”为JSF 1.2版本 或指定场景参数
<context-param> 
    <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name> 
    <param-value>true</param-value> 
</context-param> 

这些选项都没有为我工作提供了咨询意见。它适用于其他人吗?

做我自己的一些调查,结束了我逐步通过UIInput来源。直到它传递给ValueExpression时,我才能看到该值为空。不幸的是,我没有这方面的资料,所以我无法进一步深入研究。我假设它在这里最终实例化一个新的字符串类型,而是将其传递给模型属性?

我的环境是如下

  • 使用JSF-API-2.0.3和JSF的IMPL-2.0.3罐
  • 也使用RichFaces的3.3.3运行钻嘴鱼科RI,所以我不得不禁用jsf2的视图处理器。仍然使用Facelets的罐子结果
  • 所有这一切都是在Tomcat 6

任何帮助将不胜感激

+0

什么是模型属性的类型?字符串或整数/长/数字? – BalusC 2010-12-04 19:57:10

回答

0

运行,我知道我们有使用RichFaces和Sun的默认JSF实现1.2这个问题。 解决此问题的一种方法是使用您自己的自定义转换器来处理将空值(0,“”)转换为空值的任何类型。

另一种方式是做你backingbean内的转换:

 
MyBackingBean { 

String myValue; 

public void setMyValue(String v) { 
    if (v==null || v.trim().length==0) { 
    myValue==null; 
    } else { 
    myValue=v; 
    } 
} 

public String getMyValue() { 
    return myValue; 
} 

}