PrimeFaces p:selectBooleanCheckbox
和p:selectBooleanButton
可以链接到控制器中的原始数据类型boolean
变量。
我想有一个可以链接到参考数据类型Boolean
的控制器。它必须能够显示null
,true
和false
值。
p:triStateCheckbox
可以链接到String
变量,但不能链接到Boolean
值。
在Java控制器中是否有任何JSF / PrimeFaces UI组件可以表示参考数据类型Boolean
?
如果您想按String
中的说明使用Boolean
,则应编写从TriStateCheckbox
到documentation的转换器:
TriStateCheckbox默认为每个状态传递值“ 0”,“ 1”,“ 2”,并且可以使用转换器对其进行自定义。
因此,请使用类似:
public class TriStateBooleanConverter implements Converter {
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if (value == null) {
return null;
}
switch (value) {
case "0": return null;
case "1": return Boolean.TRUE;
case "2": return Boolean.FALSE;
default: throw new ConverterException();
}
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
Boolean bool = (Boolean) value;
if (bool == null) {
return "0";
}
return bool ? "1" : "2";
}
}
另请参见: