It's not a secret anymore!*
The moose likes Struts and the fly likes Runtime type substitution on logic:iterate Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Frameworks » Struts
Bookmark "Runtime type substitution on logic:iterate" Watch "Runtime type substitution on logic:iterate" New topic
Author

Runtime type substitution on logic:iterate

Scott Bailey
Greenhorn

Joined: Jan 22, 2004
Posts: 2
I am using struts 1.1 and I want to have a multipurpose jsp. I am getting the ClassCastException when I try to do something similar to the following:
<% String dynamicType = "com.myorg.myClass"; %>
<logic:iterate name="TableActionForm" property="genericVos" id="tablelist" indexId="indexNum" type="<%=dynamicType%>">
The string evaluates properly elsewhere on the page and copying the value into the iterate tag (so it is not dynamically generated) works fine - it is the correct class and the iterate works properly.
The struts-logic.tld says that the type property has a rtexprvalue=true. The plan was to pass in the type of the class as a Tiles attribute but I can't even get the above to work. Has anyone done something like this, is there another way to do this?
Thanks,
Scott
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60766
    
  65

Welcome to the Ranch Scott. We have a forum devoted to Struts, so I'm moving your topic along to there.


[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
Ray Stojonic
Ranch Hand

Joined: Aug 08, 2003
Posts: 326
have your classes implement an Interface and use type="MyInterface"
Scott Bailey
Greenhorn

Joined: Jan 22, 2004
Posts: 2
Originally posted by Ray Stojonic:
have your classes implement an Interface and use type="MyInterface"

I thought about that (and very good suggestion, thanks) but I need to call an extra getter method on some of the classes that not all the classes have (I would be using logic:match tags to check a value passed from a tiles definition to decide whether include the call to the getter.)
I suppose I could add that extra method to the base class but to complicate things all these classes are value objects generated by a utility directly from database tables and views and I have a delivery Monday so I was hoping to come up with a JSP solution (other than cut and paste!). Thanks again.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Runtime type substitution on logic:iterate
 
Similar Threads
struts 1.2.7: html:multibox and no checked checkboxes - how does "matches" work?
List in formbean
logic iterate linkedhashmap
Problem with logic:iterate
pass results of a struts logic tag to a java method?