2016-11-29 9 views
0

Я столкнулся с проблемой при установке класса действия Строка через вызов ajax. Вот мой кодУстановить атрибут класса действия с помощью 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 вызов выглядит следующим образом:

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

распорка-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> 

Когда действие вызывает я получаю СравниваемаяСтроку как null. Я попытался изо всех сил решить эту проблему, но не могу найти то, чего не хватает. Любой из них очень ценится.

+1

где вы определили свой ActionForm, я полагаю, вы отправляете testString в качестве тела сообщения? но я не могу видеть, как вы защищаете Actionform, в котором действие будет заполнять это значение. – Bilal

ответ

1

Определение класса ваш ActionForm

public class Person extends ActionForm { 

     private String testString; 

     public String getTestString() { 
      return testString; 
     } 

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



    } 

Ваш Struts конфигурации будет выглядеть следующим образом

<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 ActionForward getTransactionsByStatus(ActionMapping mapping, ActionForm form, 
      HttpServletRequest request, HttpServletResponse response) 
        throws Exception 
    { 
     Person p = (Person) form; 
     System.out.println("Testing************************"+p.getTestString()); 
     return null; 
    } 

Проверка с этими изменениями, мы надеемся, это будет работы

+0

Теперь он работает. Спасибо, Билл. – Aniket

 Смежные вопросы

  • Нет связанных вопросов^_^