2016-07-30 16 views
0

Ich rufe Struts2 Aktion von jQuery mit Parameter, aber Aktion Methode wird nicht aufgerufen.Struts2 Aktion mit Parameter funktioniert nicht

Aber wenn ich die Aktion ohne Parameter aufgerufen, dann funktioniert es perfekt.

Aufruf Aktion:

$('#redemptionForm').attr('action','sendRedempOTP?pbCardNo='+cardNo+'&mobile='+mobileNumber+'&isSearchByMobileNoFlag='+searchByMobileNoFlag);

Struts2 Aktion Details:

<action name="sendRedempOTP" class="com.ndil.web.redemption.ViewGiftItemSlabsAction" 
     method="sendOTP"> 
      <interceptor-ref name="basicStack" /> 
      <result name="error">/jsp/balanceinquirymain2.jsp</result> 
      <result>/jsp/balanceinquirymain2.jsp</result>  
</action> 

Action-Klasse-Methode:

public String sendOTP() { 
     LOGGER.info("Send OTP called"); 

     String cardNumber = request.getParameter("pbCardNo"); 
     String mobile = request.getParameter("mobile"); 
     String isSearchByMobileNoFlag = request.getParameter("isSearchByMobileNoFlag"); 
} 

Wenn ich diese Aktion anrufe, funktioniert sie nicht. Ich bin unter Ausnahme bekommen:

No configuration found for the specified action: 'login' in namespace: 

Was ist mit diesem Code falsch?

Meine JSP Seite:

<s:form action="#" validate="true" method="post" id="redemptionForm"> 

     <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
      <tr> 
       <td> 
        <table width="950" border="0" align="center" cellpadding="0" cellspacing="1" style="background-color: #999"> 
         <tr> 
          <td style="background-color: #f1f1f1"> 
           <table width="950" border="0" cellpadding="2" cellspacing="0" align="center"> 
            <tr align="center"> 
             <td class="fieldtxt" width="50%" align="right"><s:text name="redeem.cardNo" /></td> 
             <td width="50%" align="left"><s:property value="giftRedemptionVO.pbCardNo" /></td> 
            </tr> 
            <tr align="center"> 
             <td class="fieldtxt" width="50%" align="right"><s:text name="redeem.mobileNo" /></td> 
             <td width="50%" align="left"><s:property value="giftRedemptionVO.mobileNo" /></td> 
            </tr> 
            <tr id="custNameRow" align="center"> 
             <td class="fieldtxt" width="50%" align="right"><s:text name="redeem.total.available.shopping.value" /></td> 
             <td width="50%" align="left"><s:property value="giftRedemptionVO.totalAvailableAmount" /></td> 
            </tr> 
           </td> 
          </tr> 
         </table> 

         <td><s:submit value="Redeem(SendOTP)" cssClass="crt_btn" id="sendOtpButton" theme="simple" 
       </td> 
      </tr> 
     </table> 
</s:form> 
+0

bitte post Ihre JSP-Code. –

+0

Ich kann Ihren Jquery-Code nicht sehen. –

+0

Ich habe oben erwähnt, wie ich meine Aktion von JSP-Seite aufgerufen habe. –

Antwort

0

Strust2 ist verwenden diese Art und Weise nicht Parameter zu erhalten. können Sie auf diese Weise versuchen:

public void execute() { 
    String name = super.getRequest().getParameter("pbCardNo"); 
    System.out.println("name:" + name); 
} 

oder können Sie auf diese Weise versuchen:

private String pbCardNo; 
public void setPbCardNod(String pbCardNo){} 
public String getPbCardNod(){} 

vielleicht auf diese Weise Sie

+0

Ich sah Sie hava verwenden giftRemorationVO diese Einheit, vielleicht sollten Sie den Code hinzufügen: private GiftReventionVO giftRemotionVO; und die Getter- und Setter-Methode. es wird in diese Entität injizieren und dann können Sie es verwenden, um den Parameter zu erhalten, was Sie wollen –

+0

public void execute()? –

+0

Es ist nur ein Beispiel –

0
  1. helfen kann, wenn ein Formular mit POST senden, die Daten Da das Formular bereits serialisiert ist, müssen die Werte nicht wie in einem GET als Abfragezeichenfolgenparameter codiert werden.

  2. Immer private Attribute mit Getter und Setter erhalten/aussetzen Daten, Sie so gut wie nie aus der Anforderung lesen müssen;

  3. Sie haben wahrscheinlich ein globales INPUT Ergebnis der login Aktion zugeordnet, und es wird ausgelöst. Wenn es so ist, ist aus vielen Gründen falsch:

    • die login Aktion nicht
    • die login Aktion existiert nur für Credential Probleme, nicht für jedes INPUT Ergebnis
    • , wenn der Eingang ausgelöst werden Ergebnis wird ausgelöst, bedeutet jedoch, dass Sie etwas falsch an die Seite senden, so dass die Parameter sorgfältig überprüft werden müssen. Read more on the INPUT result
0

Warum Sie mit URL senden. Wenn Sie in Javascript gelangen können. Erstellen

<s:hiddent id="test" name="test"/> 

$('#test').value("your value"); 

String test; 

setTest 
getTest 

String cardNumber = getTest(); 
Verwandte Themen