Pregunta

Esto va a ser un poco difícil de explicar. Estoy intentando escribir una etiqueta para componentise un montón de campos de dirección, pero estoy teniendo problemas para la elaboración de la expresión ognl.

uso esperado:     

mapas member.address a un objeto de dirección (nada demasiado cuchilla).

mi etiqueta (versión simple):

<%@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>

Creo que el problema es que no es en realidad <s:push value="%{#attr.name}"/> empujando el resultado de member.address en la pila es simplemente empujando una cadena de valor 'member.address' en su lugar.

¿Fue útil?

Solución

Un poco más de investigación y un largo tiempo mirando al ognl documentación resultados en lo siguiente:

<%@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 el truco.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top