Hi,
When I try to set using javascript the disabled property to true. I get this
weird server exception:
javax.faces.FacesException: Exception while setting value for expression :
#{cmp_delivery.selectedEndDateYear} of component with path : {Component-Path
: [Class: javax.faces.component.UIViewRoot,ViewId: /cmp_delivery.jsp][Class:
javax.faces.component.html.HtmlForm,Id: formCampaignDelivery][Class:
javax.faces.component.html.HtmlSelectOneMenu,Id: endDateYear]}
at
javax.faces.component.UIInput.queueExceptionInRequest(UIInput.java:262)
at javax.faces.component.UIInput.updateModel(UIInput.java:243)
at javax.faces.component.UIInput.processUpdates(UIInput.java:167)
at javax.faces.component.UIForm.processUpdates(UIForm.java:91)
at
javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:72
9)
at javax.faces.component.UIViewRoot.access$201(UIViewRoot.java:43)
at javax.faces.component.UIViewRoot$3.process(UIViewRoot.java:109)
at javax.faces.component.UIViewRoot.process(UIViewRoot.java:206)
at
javax.faces.component.UIViewRoot.processUpdates(UIViewRoot.java:105)
at
org.apache.myfaces.lifecycle.UpdateModelValuesExecutor.execute(UpdateModelVa
luesExecutor.java:33)
at
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:1
03)
at
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:206)
at
com.todacell.ui.view.filter.OpenSessionInViewFilter.doFilterInternal(OpenSes
sionInViewFilter.java:149)
at
com.todacell.ui.view.filter.OncePerRequestFilter.doFilter(OncePerRequestFilt
er.java:61)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:206)
at
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.
java:147)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:175)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128
)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102
)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http
11Protocol.java:584)
at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.jasper.el.JspELException: /cmp_delivery.jsp(130,48)
'#{cmp_delivery.selectedEndDateYear}' java.lang.IllegalArgumentException
at
org.apache.jasper.el.JspValueExpression.setValue(JspValueExpression.java:94)
at javax.faces.component.UIInput.updateModel(UIInput.java:230)
... 30 more
Caused by: java.lang.IllegalArgumentException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.el.BeanELResolver.setValue(BeanELResolver.java:108)
at
javax.el.CompositeELResolver.setValue(CompositeELResolver.java:68)
at
org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.access$501(F
acesCompositeELResolver.java:46)
at
org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver$6.invoke(Fac
esCompositeELResolver.java:132)
at
org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.invoke(Faces
CompositeELResolver.java:148)
at
org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.setValue(Fac
esCompositeELResolver.java:128)
at org.apache.el.parser.AstValue.setValue(AstValue.java:114)
at
org.apache.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:249)
at
org.apache.jasper.el.JspValueExpression.setValue(JspValueExpression.java:85)
... 31 more
This is the javascript code, that simply sets the disabled to "true". When I
remark the disabled all is working fine (but not behaves as I would like):
function disableEndDate()
{
var expire = document.getElementById('formCampaignDelivery:expire');
if (expire != null)
{
var day = document.getElementById('formCampaignDelivery:endDateDay');
var month =
document.getElementById('formCampaignDelivery:endDateMonth');
var year =
document.getElementById('formCampaignDelivery:endDateYear');
if (expire.checked)
{
day.selectedIndex = 0;
day.disabled = true;
month.selectedIndex = 0;
month.disabled = true;
year.selectedIndex = 0;
year.disabled = true;
}
else
{
day.disabled = false;
month.disabled = false;
year.disabled = false;
}
}
}