2016-11-29 1 views
0

Ich bin von Problem beim Festlegen der Aktionsklasse String durch Ajax-Aufruf. Hier ist mein CodeSet Aktionsklasse Attribut mit Ajax Jquery Struts-1

DashBoardGraphAction.java

public class DashBoardGraphAction extends DispatchAction 
{ 
    private String testString; 


    public ActionForward getTransactionsByStatus(ActionMapping mapping, ActionForm form, 
      HttpServletRequest request, HttpServletResponse response) 
        throws Exception 
    { 
     System.out.println(fromDate); 
     return null; 
    } 

    public String getTestString() { 
     return testString; 
    } 
    public void setTestString(String testString) { 
     this.testString = testString; 
    } 

Ajax-Aufruf ist wie folgt:

<script> 
      var testString = "testName"; 
      $.ajax({ 

       url: '${pageContext.request.contextPath}/gettransactionData.do?parameter=getTransactionsByStatus', 

       type: 'POST', 
       data: 'testString='+testString, 
       dataType: 'json', 
       success: function(data) 
       {  
        str = data; 
       }, 
       async:false, 
       error: function(XMLHttpRequest, textStatus, errorThrown){ 
       alert('Error ' + textStatus); 
       alert(errorThrown); 
       alert(XMLHttpRequest.responseText); 
       } 
      }); 
</script> 

struts-config.xml

<action path="/gettransactionData" parameter="parameter" 
    type="com.pp.dashboard.DashBoardGraphAction"> 
    <forward name = "getTransactionsByStatus" path = "/jsp/pp/dashboardReportStatus.jsp" /> 
    <forward name = "getTransactionsByProcessor" path = "/jsp/pp/dashboardReportProcessorWise.jsp" /> 
</action> 

Wenn Aktion ruft erhalte ich teststring als null. Ich habe mein Bestes versucht, um es zu lösen, aber ich kann nicht finden, was fehlt. Jeder ist sehr geschätzt.

+1

Wo hast du deine ActionForm definiert? Ich schätze, du schaust testString als Post-Body an? aber ich kann Ihre Actionform-Definition nicht sehen, in der Aktion diesen Wert auffüllen wird – Bilal

Antwort

1

eine Ihrer Klasse Action definieren

public class Person extends ActionForm { 

     private String testString; 

     public String getTestString() { 
      return testString; 
     } 

     public void setTestString(String testString) { 
      this.testString = testString; 
     } 



    } 

Ihre Struts Config wie diese

wie die hoffentlich mit diesen Veränderungen

public ActionForward getTransactionsByStatus(ActionMapping mapping, ActionForm form, 
      HttpServletRequest request, HttpServletResponse response) 
        throws Exception 
    { 
     Person p = (Person) form; 
     System.out.println("Testing************************"+p.getTestString()); 
     return null; 
    } 

prüfen

<struts-config> 
     <form-beans> 

      <form-bean name="formClass" type="com.forms.Person"/> 

     </form-beans> 

     <action-mappings> 



      <action name="formClass" path="/gettransactionData" parameter="parameter" 
    type="com.pp.dashboard.DashBoardGraphAction"> 
    <forward name = "getTransactionsByStatus" path = "/jsp/pp/dashboardReportStatus.jsp" /> 
    <forward name = "getTransactionsByProcessor" path = "/jsp/pp/dashboardReportProcessorWise.jsp" /> 
</action> 


     </action-mappings> 

    </struts-config> 

ändern Aktionsklassenmethode aussehen wird es Arbeit

+0

Es funktioniert jetzt. Danke, Bill. – Aniket