Again, I'm not getting build errors related to jstl.

---- Original message ----
>Date: Mon, 21 Nov 2005 08:54:53 +1300
>From: Simon Kitching <[EMAIL PROTECTED]>  
>Subject: Re: dataTable exceptions w/ 1.1.1  
>To: MyFaces Discussion <[email protected]>
>
>You will definitely get a build error when compiling MyFaces 
if you 
>don't have jstl in the compile path.
>
>The code in UIData does:
>   if (value instanceof DataModel) ...
>   else if (value instanceof List) ...
>   else if (value instanceof ResultSet) ...
>so clearly MyFaces requires ResultSet as a dependency, even 
when the 
>runtime value of "value" isn't a ResultSet. And this seems 
to be 
>required by the JSF spec. I guess MyFaces could check for 
the presence 
>of jstl.ResultSet first before doing the instanceof, and 
assume that if 
>the class is not available then the parameter cannot be an 
instance of it!
>
>I'm not so convinced that allowing Set as an underlying type 
for 
>DataModel is a good idea. A Set is inherently unordered. I 
guess it can 
>be assumed from a *practical* point of view that iterating 
over a set 
>will return the elements in the same order as long as the 
set doesn't 
>change though this is not official AFAIK. If it wasn't true 
then the 
>rows in the table could be displayed in a different order 
each time the 
>page is viewed (including refresh) which seems a bad idea 
from the 
>usability viewpoint. Even assuming iteration is "stable" 
when the set 
>doesn't change, there is *no* guarantee that ordering won't 
change when 
>an insert/delete occurs, meaning the table the user 
previously viewed 
>gets presented in quite a different order - not good I think.
>
>Regards,
>
>Simon
>
>Dennis Byrne wrote:
>> I'm not getting build errors related to jstl.  This is a 
>> runtime exception that occurs even though the object bound 
to 
>> @value is not a jstl.ResultSet.
>> 
>> I get the PropertyNotFoundException in the following 3 
>> scenarios
>> 
>> 1.0.9 h:dataTable & t:dataTable
>> 1.1.1 h:dataTable
>> 
>> It appears @value can point to a Set for t:dataTable in 
>> 1.1.1 ?  If so, thanks to whoever added this.
>> 
>> ---- Original message ----
>>> Date: Sun, 20 Nov 2005 15:15:40 +1300
>>> From: Simon Kitching <[EMAIL PROTECTED]>  
>>> Subject: Re: dataTable exceptions w/ 1.1.1  
>>> To: MyFaces Discussion <[email protected]>
>>>
>>> Dennis Byrne wrote:
>>>> just moved an app from 1.0.9 to 1.1.1 .  I get one of 
>> these 
>>>> even though there is no JSTL in the whole app:
>>>>
>>>>
>> 
java.lang.NoClassDefFoundError:javax/servlet/jsp/jstl/sql/Resu
>>>> lt
>>>>
>>>> Not a show stopper.  Putting the jstl.jar in the 
classpath 
>>>> solves this (the one received from ibiblio when running 
>> the 
>>>> download-deps ant task) .
>>> See the Sun javadoc for UIData.getValue(). This requires 
a 
>> DataModel to 
>>> automatically be created to wrap the user model when that 
is 
>> any of:
>>> java.util.List, java.sql.ResultSet, 
>> javax.servlet.jsp.jstl.sql.Result.
>>> So the dependency is really needed, ie the spec basically 
>> mandates that 
>>> jstl is in the classpath when JSF is used. JSTL is listed 
as 
>> a 
>>> dependency for MyFaces in the build.xml file.
>>>
>>>
>>>> However I still get this:
>>>>
>>>> javax.faces.el.PropertyNotFoundException: Bean: 
>>>> org.hibernate.collection.PersistentSet, property: gameId
>>>>
>>>> ... using the following in the JSP:
>>>>
>>>> <h:dataTable styleClass="dataTable"  var="item" 
>>>>     value="#{TeamCrud.unit.gamesForAwayTeamId}" >
>>>>     <h:column>
>>>>       <h:commandLink immediate="true" 
>>>>           value="Game #{item.gameId}" 
>>>>           action="#{GameCrud.retrieve}" >
>>>>            <t:updateActionListener 
>>>>                  property="#{GameCrud.id}" 
>>>>                  value="#{item.gameId}" />
>>>>       </h:commandLink>
>>>>      </h:column>
>>>> </h:dataTable>
>>>>
>>>> Note that the EL does not reference "gameId" of the Set, 
>> but 
>>>> rather "gameId" of an item in the Set.  
>>>>
>>>> Furthermore, the PropertyNotFoundException will go away 
if 
>> I 
>>>> change h:dataTable to t:dataTable .
>>>>
>>>> Have either of these issues been addressed already?
>>> Sorry, don't know anything about this one.
>>>
>>>
>>> Regards,
>>>
>>> Simon
>> 
>> Dennis Byrne
>> 
>

Dennis Byrne

Reply via email to