Ola pessoal, estou com um problema pra criar uma variavel dinamica no struts 2, tenho campos que são gerados dinamicamente no meu formulario e consequentemente a exibição desses valores é dinamico.
Estou tentando concatenar 2 variaveis e pegar o valor dessa concatenacao(que é a variavel dinamica). Ex: No meu form preciso exibir dinamicante o valor do indice do iterator concatenado com "_" e concatenado com uma propriedade da lista do iterator. Meu codigo ficaria assim:
1º problema<s:iterator value="%{[0].itensComNrDeSerie}" status="status" >
// id_item deveria ser igual a "1_2" por exemplo, mas nao retorna nada por causa do "_%{idItem}". Se coloco somente %{#status.index} ou somente %{idItem}, funciona.
<s:set name="id_item" value="%{#status.index}_%{idItem}" />
</s:iterator>
2º problema
se o primeiro problema fosse resolvido, ou seja, a variavel id_item sendo igual a "1_2", preciso finalmente colocar esse "1_2" como variavel do meu request, entao ficaria assim:
<s:textfield name="%{#status.index}_%{idItem}" value="%{[0].getServletRequest().getParameter('%{id_item}')}"/>
O estranho é que o nome do campo eu consigo setar dinamicamente, nesse caso o nome do input ficaria igual a "1_2" por exemplo, tentei colocar o mesmo codigo dentro do getServetRequest... mas nao funciona, por isso tentei usando a variavel id_item, mas tbm nao funciona. O resultado final do meu input deveria ser assim:
<s:textfield name="1_2" value="algum valor que esta dentro da variavel 1_2 que pego via post"/>
O codigo final esta assim:
<s:iterator value="%{[0].itensComNrDeSerie}" status="status" >
<s:if test="#status.first">
<tr>
<td colspan="3" class="cabecalho">Itens com Número de série</td>
</tr>
<tr>
<td width="200" class="titulo">Id</td>
<td class="titulo" width="100">Descrição</td>
<td class="titulo">Nº de série</td>
</tr>
</s:if>
<tr>
<td class="item" ><s:property value="idItem"/></td>
<td class="item"> <s:property value="nomeItem"/></td>
<s:set name="id_item" value="%{#status.index}_%{idItem}" />
<td class="item"><s:textfield name="%{#status.index}_%{idItem}" value="%{[0].getServletRequest().getParameter('%{id_item}')}"/>
</td>
</tr>
</s:iterator>
Espero que possam me ajudar!
abraços!!!