You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Michael D. (JIRA)" <de...@myfaces.apache.org> on 2013/07/02 17:00:26 UTC

[jira] [Created] (TOMAHAWK-1664) t:selectBooleanCheckbox / Binding is not working after Mojarra update

Michael D. created TOMAHAWK-1664:
------------------------------------

             Summary: t:selectBooleanCheckbox / Binding is not working after Mojarra update
                 Key: TOMAHAWK-1664
                 URL: https://issues.apache.org/jira/browse/TOMAHAWK-1664
             Project: MyFaces Tomahawk
          Issue Type: Bug
    Affects Versions: 1.1.14, 1.1.13
         Environment: GlassFish Server Open Source Edition 3.1.2.2 (build 5)
- Windows 7 (64 Bit) & Oracle Java jdk1.7.0_15 (64 Bit)
- Oracle Linux Server release 5.5 & OpenJDK 64-Bit Server VM (build 1.6.0-b09, mixed mode)
- Mojarra v2.1.23
- org.apache.myfaces.tomahawk:tomahawk20:1.1.13
- org.apache.myfaces.tomahawk:tomahawk20:1.1.14
- org.apache.myfaces.tomahawk:tomahawk21:1.1.14


            Reporter: Michael D.


After updating Mojarra from v2.1.6 to v2.1.23 I'm facing the issue, that the binding of t:selectBooleanCheckbox is not working.

JSF snippet:
    --- SNIP ---
<t:selectBooleanCheckbox
    id="myId"
    forceId="true"
    value="#{myBean.myValue}"
    binding="#{myBean.myBinding}"
    styleClass="myClass"/>
<h:inputText
    id="anotherId"
    value="#{myBean.anotherValue}"
    validator="#{myBean.validate}"
    requiredMessage="#{msg['required']}"
    maxlength="100"/>
    --- SNAP ----

Java snippet:
    --- SNIP ---
@ManagedBean
public class MyBean {

	private UIInput myBinding;
	private boolean myValue;
    private String anotherValue;
    // ...
	public UIInput getMyBinding() { return myBinding; }
	public void setMyBinding(UIInput myBinding) { this.myBinding = myBinding; }
	public boolean isMyValue() { return myValue; }
	public void setMyValue(boolean myValue) { this.myValue = myValue; }
	public String getAnotherValue() { return anotherValue; }
	public void setAnotherValue(String anotherValue) { this.anotherValue = anotherValue; }

	public void validate(FacesContext ctx, UIComponent comp, Object value) throws ValidatorException {
		if ((HtmlSelectBooleanCheckbox) myBinding.isSelected()) { // <--------------- myBinding is null
            // ...
		}
	}

}
    --- SNAP ---
    
I did debug:
1. Opening page
    a) getMyBinding is called
    b) setMyBinding is called with valid instance
2. Submit form
    a) No call of getMyBinding/setMyBinding
    b) validate is called ---> myBinding is null!!!!

If I replace "t:selectBooleanCheckbox" by "h:selectBooleanCheckbox":
1. Opening page
    a) getMyBinding is called
    b) setMyBinding is called with valid instance
2. Submit form
    a) setMyBinding is called with valid instance
    b) validate is called ---> myBinding is valid
3. Next page is displayed

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira