myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Heinen <michael.hei...@recommind.com>
Subject RE: JspPropertyNotWritableException - Illegal Syntax for Set Operation after update to 1.2
Date Thu, 17 Dec 2009 10:54:26 GMT
I just tried the latest 6.0.20 without success.

Do you think it's Bug in tomcat's EL impl?
If so I'll try to talk with some tomcat guys but this will take some time I fear.

Michael


-----Original Message-----
From: Michael Heinen [mailto:michael.heinen@recommind.com] 
Sent: Donnerstag, 17. Dezember 2009 11:40
To: MyFaces Discussion
Subject: RE: JspPropertyNotWritableException - Illegal Syntax for Set Operation after update
to 1.2

I was afraid of something like this.

Moving this logic into managed beans is not so easy because they are not always accessible,
or?
For some simple expressions it can be done but what about expressions in nested lists?

Sample
<t:dataList id="outer" var="search"
  <t:dataList id="inner" var="searchEntry"
   <t:inputText
     value="#{searchEntry.type=='dateFrom'?search.attributes[searchEntry.name].begin:search.attributes[searchEntry.name].end}"/>

Local iteration var searchEntry does not know search which is in an outer container and vice
versa.
And I cannot pass variables (I don’t use facelets).

Isn’t this a major functionality loss?
Can I use another impl. of the unified EL? If yes which one would you recommend?

Michael


From: sethfromaustria@gmail.com [mailto:sethfromaustria@gmail.com] On Behalf Of Jakob Korherr
Sent: Donnerstag, 17. Dezember 2009 10:54
To: MyFaces Discussion
Cc: Michael Heinen
Subject: Re: JspPropertyNotWritableException - Illegal Syntax for Set Operation after update
to 1.2

Hi Michael,

Due to the change to the Unified EL from MyFaces 1.1 to 1.2 some EL related things changed.
The problem you're describing is one of those, I'm afraid.

Looking at the first item in the stacktrace you can see that the Exception does not come from
MyFaces, but from tomcat's implementation of the Unified EL: org.apache.jasper.el.JspValueExpression.

You can workaround this by moving the logic to a managed bean property.

Regards,

Jakob Korherr

2009/12/17 Michael Heinen <michael.heinen@recommind.com<mailto:michael.heinen@recommind.com>>
Hi,

are conditional Expressions not allowed anymore in value attributes in JSF 1.2?

Stack:
Caused by: org.apache.jasper.el.JspPropertyNotWritableException: /pages/search.jsp(13,2) '#{sessionScope.visit.user.restrictedToSearchInBatches?FlatBatchForReviewerCacheBean:NullBean}'
Illegal Syntax for Set Operation
               at org.apache.jasper.el.JspValueExpression.setValue(JspValueExpression.java:88)
               at org.apache.myfaces.custom.savestate.UISaveState.restoreState(UISaveState.java:125)
               at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:849)
               ... 48 more

Tag:
<t:saveState id="flatBatchForReviewerCacheBean" value="#{user.allowedToDoIt?FlatBatchForReviewerCacheBean:NullBean}"/>

It is working if I use either FlatBatchForReviewerCacheBean or NullBean without the condition.


Input tags are also not working with conditions in the value attribute:
Message:
org.apache.jasper.el.JspPropertyNotWritableException: /pages/search.jsp(154,14) '#{searchEntry.type=='dateFrom'?search.attributes[searchEntry.name].begin:search.attributes[searchEntry.name].end}'
Illegal Syntax for Set Operation

JSP snippet
<t:dataList id="taxList"
 value="#{MyController.fields}"
 var="searchEntry" ... >

   <t:inputText id="s_date"
     value="#{searchEntry.type=='dateFrom'?search.attributes[searchEntry.name].begin:search.attributes[searchEntry.name].end}">
   </t:inputText>

Both tags worked well with myfaces 1.1.6 and tomahawk 1.1.7 but not with myfaces 1.2.8 and
tomahawk12_1.1.9

Is it a bug?
Do I have to change anything or is there a workaround?

Michael

Mime
View raw message