struts2 - etiquetas - struts 2
Acceder a variables de instancia de acción y valores de variable de bean controlados por modelo en JSP (1)
Tengo searchKey
como una variable en la clase de acción y un objeto bean controlado por modelo.
public class PaymentGateWayAction extends ActionSupport implements ModelDriven<PaymentResponseDTO> {
private String searchKey;
private PaymentResponseDTO paymentResponseDTO = new PaymentResponseDTO();
// ...
}
searchKey
también es una variable en PaymentResponseDTO
.
Necesito acceder a searchKey
desde la clase de acción y modeldriven Bean en función de algunas condiciones. Tener varible con el mismo nombre es malo. Pero el anterior ya está desarrollado. Si realizo alguna modificación en el archivo Java, necesito hacer muchas modificaciones que son difíciles.
Ahora necesito acceder a la variable de la clase de acción. Traté de acceder a la variable de la clase de acción de la siguiente manera:
<s:hidden id="searchKey" name="searchKey" value="%{searchKey}"/>
Pero está devolviendo valores nulos.
Tengo el siguiente código también:
this.setSearchKey("somevarible");
Por favor sugiera dónde está pasando el error
struts.xml
<action name="atomResponse" class="com.PaymentGateWayAction" method="atomPaymentResponse">
<result name="success" type="tiles">paymentGateWayResponse</result>
<result name="failure" type="tiles">paymentGateWayResponseError</result>
</action>
azulejos xml
<definition name="paymentGateWayResponse" extends="b2cHome">
<put-attribute name="body" value="agent_b2c/b2c_paymentGateWayResponse.jsp" />
</definition>
En b2c_paymentGatewayResponse.jsp
el código de campo oculto está presente.
Cuando tanto su modelo (en la parte superior de la pila) como su acción (generalmente el elemento debajo del modelo) tienen propiedades del mismo nombre, puede desambiguar utilizando la variable de contexto #action
value stack, o accediendo directamente a la pila (mala idea )
<!-- Access action properties directly: -->
<s:property value="%{searchKey}" /> <!-- Model; top of stack. -->
<s:property value="%{#action.searchKey}" /> <!-- Action; accessed directly. -->
<!-- Hope the stack never changes: -->
<s:property value="%{[0].searchKey}" /> <!-- Model; top of stack. -->
<s:property value="%{[1].searchKey}" /> <!-- Action; next stack pos. -->