Olá galera,
Estava utilizando a versão 2.09 do Struts num projeto, resolvi fazer um upgrade e colocar a versão 2.1.
Fiz as alterações necessárias e o projeto voltou a rodar.
O problema foi na hora de setar um valor num componente <s:checkBox /> que estava sendo feito por expressions.
Vi na area de issues do struts 2, que isso foi fruto de uma correção de falha de segurança. https://issues.apache.org/struts/browse/WW-2107
Pergunta: Como obter o atributo “cd” do meu objeto que está sendo iterado?
Código:
Trecho: <s:checkbox name=“checkBox” id=“checkBox” value=“cdUsuario” fieldValue="${item.cd}" theme=“simple” onclick=“confirmaAllChecked()” />
</display:table>[/code]
<display:table requestURI="/usuario/pesquisar.action" name="listUsuPesquisa" list="listUsuPesquisa" export="false" class="list" pagesize="15" uid="item">
<display:column title='<input type="checkbox" name="selectAll" id="selectAll" value="" onclick="checkAll()"/>'>
<s:checkbox name="checkBox" id="checkBox" value="cdUsuario" fieldValue="${item.cd}" theme="simple" onclick="confirmaAllChecked()" />
</display:table>
Exceção
According to TLD or attribute directive in tag file, attribute fieldValue does not accept any expressions
Obrigado!!!
Solução:[size=18] [/size]
Tinha descobrido a solução, mas não pude postar no forum.
Conforme o amigo Herrera postou, o atributo pode ser obtido via #attr
fieldValue="%{#attr.primitivo.codEntidade}"
onde:
primitivo é o nome do objeto iterado
codEntidade atributo do objeto