2016-11-29 10 views
0

ajax呼び出しでアクションクラスStringを設定する際に問題に直面しています。ここでは、次のようにajax jqueryを使用してアクションクラス属性を設定するStruts-1

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呼び出しがある

DashBoardGraphAction.java私のコードです:

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

アクションは、私がたTestStringを取得しています呼び出しますnullとして。私はそれを解決するために最善を尽くしましたが、欠けているものを見つけることはできません。どんなものでも大歓迎です。

+1

ActionFormをどこで定義しましたか?testStringをPost本体として提出すると思いますか?アクションがこの値を入力するアクションフォームの定義は表示されません – Bilal

答えて

1

あなたのStruts設定がうまくいけば、それは意志これらの変化とその

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; 
    } 

チェックのようなこの

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

変更アクションクラスのメソッドのようになります

public class Person extends ActionForm { 

     private String testString; 

     public String getTestString() { 
      return testString; 
     } 

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



    } 

あなたのActionFormクラスを定義します。仕事

+0

これは今動作します。ありがとう、Bill。 – Aniket

関連する問題