Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set default value of h:selectOneRadio button

Tags:

jsf

I am unable to set the default value of h:selectOneRadio as i need radio button to be pre selected

<h:selectOneRadio id="myRadio" value="#{Externalbean.addressFlag}" >
<f:selectItem itemValue="1" itemLabel="Yes"/>
<f:selectItem itemValue="0" itemLabel="No"/>
</h:selectOneRadio>

and my backing bean is

private String addressFlag="0";

public String getAddressFlag() {
    return addressFlag;
}


public void setAddressFlag(String addressFlag) {
        this.addressFlag = addressFlag;
    }

but no luck

like image 328
Nitin Avatar asked Mar 22 '10 09:03

Nitin


2 Answers

You need to set the default value in the init method of your backing bean:

@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;
    }
}
like image 75
John Alexander Betts Avatar answered Oct 13 '22 02:10

John Alexander Betts


I did a little test, it works just fine as expected, but I also observed that when you leave out the <h:form> tag, the behaviour of radio buttons is unpredictable and dependent on the webbrowser. The JSF-generated HTML output looks correct, but the webbrowser would in the view only select the button which was actually selected by the user in the previous request on the same page. If the cache is empty, none of the buttons is selected. At least, that was the case in FF.

So, it look like that you have forgotten to put a <h:form> around it.

like image 7
BalusC Avatar answered Oct 13 '22 01:10

BalusC