Pergunta

Este vai ser um pouco complicado de explicar. Eu estou tentando escrever uma tag para componentise um monte de campos de endereço, mas eu estou tendo problemas para trabalhar fora a expressão OGNL.

uso esperado:

member.address mapeia para um objeto Endereço (nada muito cutelo).

minha tag (versão mais simples):

<%@taglib prefix="s" uri="/struts-tags" %>
<%@attribute name="name" required="true" rtexprvalue="true" type="java.lang.String" %>
<s:push value="%{#attr.name}">
    Address line 1:
    <s:property value="line1"/>
</s:push>

Eu acho que o problema é que <s:push value="%{#attr.name}"/> não está realmente empurrando o resultado de member.address para a pilha que está apenas empurrando uma série de valor 'member.address' em vez.

Foi útil?

Solução

Um pouco mais de pesquisa e um longo tempo olhando para a OGNL documentação resulta no seguinte:

<%@taglib prefix="s" uri="/struts-tags" %>
<%@attribute name="name" required="true" rtexprvalue="true" type="java.lang.String" %>
<s:push value="%{(#attr.name)(#attr)}">
   Address line 1:
   <s:property value="line1"/>
</s:push>

Parece TODO o truque.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top