Neste trecho de código que eu estou definindo um bean com bean : define. No entanto, eu quero condicionalmente alterar o valor.
De acordo com o doc struts, bean: define ou cria ou substitui um instância anterior do bean , conforme definido pelo id. No entanto, não entedo como isso é possível, como o bean : define realmente escreve em linha ou seja:
[code]<bean:define name=“blah” id="blah/> -> Objeto 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”>
</logic:equal>
</logic:iterate>
[/code]
Eu tentei substituir o outro bean: define com, scriptlets como no exemplo:
<logic:greaterThan name="thread" property="replyCount" value="100">
<%hot_topic="false"%>
</logic:greaterThan>
Mas depois o bean: write, parece ter ignorado o scriptlet (possivelmente) devido à ordem de compilação do JSP vs tags?