是否有String的转换器?

时间:2011-05-06 11:16:26

标签: jsf jsf-2 bean-validation

为了在JSF bean验证中转换String值,将使用哪个转换器? 与数字值一样,我们使用<f:convertNumber>,对于日期,我们使用<f:convertDataTime>。 我的代码snipest如下: JSF页面:

<h:inputText id="Name" label="Name" value="#{employee.eName}"/>
<h:message for="Name" styleClass="errorMessages"/> 

Bean类:

public class Employee implements Serializable{
    @NotNull @Size(min = 3, max = 30)
    String eName;
}

1 个答案:

答案 0 :(得分:3)

String没有默认转换器。请求参数已经String

如果您打算在String上挂钩自定义转换器,请使用

@FacesConverter(forClass=String.class)
public class StringConverter implements Converter {

    // ...

}

我见过的唯一用例是将它们设置为null而不是空字符串,但这也可以通过在web.xml中设置以下上下文参数来实现。

<context-param>
    <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
    <param-value>true</param-value>
</context-param>

这样,当您提交空字符串时,将触发@NotNull注释。否则,您必须使用特定于Hibernate的@NotBlank

另见