在boolean和String之间转换h:selectBooleanCheckbox值

Tar*_*pra 3 jsf converter selectbooleancheckbox

我有一个包含字段的辅助bean,该字段creditCard可以有两个字符串值yn从DB填充.我想在复选框中显示这个,y然后n转换为boolean.

我该如何实现它?在渲染响应时我不能使用自定义转换器作为getAsString()返回String,而我需要一个boolean.

Bal*_*usC 20

<h:selectBooleanCheckbox>组件不支持自定义转换器.该物业必须是一个boolean.期.

最好的做法是在持久层中进行转换,或者添加额外的布尔getter/setter来装饰原始y/ ngetter/setter或者只是替换旧的getter/setter.例如

private String useCreditcard; // I'd rather use a char, but ala.

public boolean isUseCreditcard() {
    return "y".equals(useCreditcard);
}

public void setUseCreditcard(boolean useCreditcard) {
    this.useCreditcard = useCreditcard ? "y" : "n";
}
Run Code Online (Sandbox Code Playgroud)

然后在<h:selectBooleanCheckbox>相反使用它.

<h:selectBooleanCheckbox value="#{bean.useCreditcard}" />
Run Code Online (Sandbox Code Playgroud)