【问题标题】:Set Action Class attribute using ajax jquery Struts-1使用 ajax jquery Struts-1 设置动作类属性
【发布时间】:2016-11-29 06:15:21
【问题描述】:

我在通过 ajax 调用设置动作类字符串时遇到问题。这是我的代码

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>

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。我已尽力解决它,但找不到丢失的东西。非常感谢。

【问题讨论】:

  • 你在哪里定义了你的 ActionForm 我猜你将 testString 作为 Post 正文提交?但我看不到您的 Actionform 定义,其中操作将填充此值

标签: java jquery ajax struts-1


【解决方案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;
     }

检查这些更改,希望它会起作用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 2013-03-01
    相关资源
    最近更新 更多