In this code excerpt I am defining a bean with bean:define. However, I
want to conditionally change the value.
According to the struts doc, bean:define either creates, or replaces a
previous instance of the bean as defined by the id. However, I can't
see how this is possible, as the bean:define actually writes inline
java i.e <bean:define name="blah" id="blah/> --> Object blah = "";
<logic:iterate name="page_of_results" indexId="index" id="thread">
<bean:define scope="page" name="hot_topic" value="false"
id="hot_topic"/>
<logic:greaterThan name="thread" property="replyCount" value="100">
<bean:define scope="page" name="hot_topic" value="true"
id="hot_topic"/>
</logic:greaterThan>
.
..
....
<logic:equal name="hot_topic" value="true">
<img src="/midletsite/images/hot_topic.gif"/>
</logic:equal>
</logic:iterate>
I've tried replacing the other bean:defines with scriptlets eg,
<logic:greaterThan name="thread" property="replyCount" value="100">
<%hot_topic="false"%>
</logic:greaterThan>
but the bean:write later on seems to have ignored the scriptlet (
possibly due to the compilation order of the JSP vs. tags?
Can anyone provide a workaround?
Thanks
Ben