java - Struts 2 variables dinámicas
struts2 file (2)
Parece una solución, pero puede usar attr
para evaluar la cadena.
<s:set var="myNum" value="numConst" />
<s:set var="number" value="''@xxx.CommonConstant@''+#myNum" />
<s:property value="#attr[#number]"/>
<s:if test="#attr[#number] == 9">
do something
</s:if>
Intento crear una variable dinámica en Struts2 usando la etiqueta set
<s:set var="myNum" value="numConst" />
<s:set var="number" value="%{getText(''@xxx.CommonConstant@''+#myNum)}" />
numConst
devolverá un valor dinámico recuperado de la base de datos. Por ejemplo, si el valor es NUEVE, el número debe ser @xxx.CommonConstant@NINE
Establecí el valor en mi clase java para que @xxx.CommonConstant@NINE
devuelva 9
.
Hasta ahora, el valor puede mostrarse sin problemas en la etiqueta de texto si uso
<s:text name="%{getText(#number)}" />
Devolverá 9
pero se mostró incorrectamente cuando intenté usar la etiqueta de propiedad
<s:property value="%{getText(#number)}" />
<s:property value="%{#number}" />
<s:property value="#number" />
<s:property value="%{getText(''%{getText(#number)}'')}" />
Que todos los ejemplos anteriores me darán el valor de @xxx.CommonConstant@NINE
. La razón por la que trato de obtener el valor de la etiqueta de propiedad es porque quiero copiar la forma correcta de mostrar el valor para que pueda usarlos en la etiqueta como en los ejemplos a continuación:
<s:if test="#number == 9">
do something
</s:if>
o
<s:if test="%{getText(#number)} == 9">
do something
</s:if>
CommonConstant:
package xxx;
public abstract class CommonConstant {
public static final int NINE = 9;
public static final int NINEONE = 91;
public static final double ADMIN_PGM = 1.4;
// ... omitted ...
}
Alguien puede ayudarme?
Puede usar una expresión entre paréntesis para evaluar el resultado de la expresión.
<s:if test="#number(0) == 9">
<s:property value="%{#number(0)}" />
</s:if>
Mire la evaluación de expresiones de la guía de lenguaje OGNL.