如何设置h:selectOneRadio按钮的默认值

Nit*_*tin 11 jsf

我无法设置h:selectOneRadio的默认值,因为我需要预先选择单选按钮

<h:selectOneRadio id="myRadio" value="#{Externalbean.addressFlag}" >
<f:selectItem itemValue="1" itemLabel="Yes"/>
<f:selectItem itemValue="0" itemLabel="No"/>
</h:selectOneRadio>
Run Code Online (Sandbox Code Playgroud)

我的支持豆是

private String addressFlag="0";

public String getAddressFlag() {
    return addressFlag;
}


public void setAddressFlag(String addressFlag) {
        this.addressFlag = addressFlag;
    }
Run Code Online (Sandbox Code Playgroud)

但没有运气

Joh*_*tts 12

您需要在辅助bean的init方法中设置默认值:

@ManagedBean
public class YourBackingBean implements Serializable {

    private String addressFlag;

    @PostConstruct
    public void init() {
        addressFlag = "0";
    }

    public String getAddressFlag() {
        return addressFlag;
    }

    public void setAddressFlag(String addressFlag) {
        this.addressFlag = addressFlag;
    }
}
Run Code Online (Sandbox Code Playgroud)


Bal*_*usC 7

我做了一点测试,它按预期工作得很好,但我也观察到当你省略<h:form>标签时,单选按钮的行为是不可预测的,并且依赖于webbrowser.JSF生成的HTML输出看起来是正确的,但是web浏览器在视图中只会选择用户在同一页面上的先前请求中实际选择的按钮.如果缓存为空,则不会选择任何按钮.至少,FF就是这种情况.

所以,看起来你忘了把<h:form>它放在身边.


Rom*_*las -2

您是否尝试将 设置addressFlag为整数?

private Integer addressFlag = 0;

public Integer getAddressFlag() {
    return addressFlag;
}

public void setAddressFlag(Integer addressFlag) {
    this.addressFlag = addressFlag;
}
Run Code Online (Sandbox Code Playgroud)