Acessar atributo do form dinâmico através da EL

1 resposta
hery

É possível acessar um atributo de um objeto da classe DynaValidatorForm através da Expression Language.

Tentei o seguinte:
<c:when test="${cadUsuarioForm[sexo] == ‘M’}">Masculino</c:when>

apesar de existir o valor M no atributo sexo, a comparaçào da sempre falsa.

&lt;form-bean name="cadUsuarioForm" type="org.apache.struts.validator.DynaValidatorForm"&gt;
	&lt;form-property name="acao" type="java.lang.String"/&gt;
	&lt;form-property name="page" type="java.lang.Integer"/&gt;
        &lt;form-property name="nome" type="java.lang.String"/&gt;
        &lt;form-property name="sexo" type="java.lang.String"/&gt;
&lt;/form-bean&gt;

atualmente estou conseguindo isto usando a taglib logic do Struts

&lt;logic:equal name="cadUsuarioForm" property="sexo" value="M"&gt;Masculino&lt;/logic:equal&gt;
&lt;logic:equal name="cadUsuarioForm" property="sexo" value="F"&gt;Feminino&lt;/logic:equal&gt;

1 Resposta

hery

Encontrei a resposta em um artigo da revista java magazine. Para acessar os atributos de um form dinâmico (DynaActionForm) através da EL é necessário adicionar a referência ao objeto map que armazena os atributos. Ficando assim o código:

&lt;c:choose&gt;
&lt;c:when test="${cadUsuarioForm.map.sexo eq 'M'}"&gt;Masculino&lt;/c:when&gt;
&lt;c:otherwise&gt;Feminino&lt;/c:otherwise&gt;
&lt;/c:choose&gt;
Criado 11 de julho de 2007
Ultima resposta 26 de jul. de 2007
Respostas 1
Participantes 1