exception
atao Aug 18, 2007 6:40 AMIn a page with only a h:outputText and a h:form, as soon as I click on the submit button of the form, I get this exception
12:23:22,468 WARN [lifecycle] executePhase(RESTORE_VIEW 1,com.sun.faces.context.FacesContextImpl@13cf3bb) threw exception
javax.el.PropertyNotWritableException: /home.xhtml @18,57 binding="#{bindingtest.testText()}": Illegal Syntax for Set Operation
at com.sun.facelets.el.TagValueExpression.setValue(TagValueExpression.java:98)
[...]
Caused by: javax.el.PropertyNotWritableException: /home.xhtml @18,57 binding="#{bindingtest.testText()}": Illegal Syntax for Set Operation
at com.sun.facelets.el.TagValueExpression.setValue(TagValueExpression.java:98)
at com.sun.faces.lifecycle.RestoreViewPhase.doPerComponentActions(RestoreViewPhase.java:245)
at com.sun.faces.lifecycle.RestoreViewPhase.doPerComponentActions(RestoreViewPhase.java:250)
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:193)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
... 37 more
It must be obvious but i have no idea why.
The application is generated with seam2/seam-gen from today cvs. The only changes are:
- outputText and form in home.xhtml
- class BindingTest.java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" > <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>popsuite-binding</title> <link href="stylesheet/theme.css" rel="stylesheet" type="text/css" /> </head> <body> <h:messages/> Test<br /> <h:outputText binding="#{bindingtest.testText()}" /> <h:form id="bindingtest"> <h:commandButton id="valid" value="OK" action="#{bindingtest.valid}"/> </h:form> </body> </html>
package org.popsuite.binding2; import static org.jboss.seam.ScopeType.APPLICATION; import static org.jboss.seam.annotations.Install.BUILT_IN; import javax.faces.component.UIComponent; import javax.faces.component.html.HtmlOutputText; import org.jboss.seam.annotations.Install; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; import org.jboss.seam.annotations.intercept.BypassInterceptors; @Scope(APPLICATION) @BypassInterceptors @Name("bindingtest") @Install(precedence = BUILT_IN) public class BindingTest { private String name; private String city; public UIComponent testText() { HtmlOutputText text = new HtmlOutputText(); text.setValue("Very simple binding test"); return text; } public String valid() { return null; } public String getName(){ return this.name; } public void setName(String name){ this.name = name; } public String getCity(){ return this.city; } public void setCity(String city){ this.city = city; } }