使用Ajax将表单数据发送到Struts2操作类

Send Form Data to Struts2 Action Class using Ajax

本文关键字:Struts2 操作 Ajax 表单 数据 使用      更新时间:2023-09-26

我是Jquery和Struts的新手。我需要使用Ajax函数将表单数据发送到Struts2操作类。

我的HTML表单元素设置为:

<div class="input-append date" id="from_date">
<input type="text" id="processDate" name="processDate" />
<span class="add-on"><i class="icon-th"></i></span>
</div>
<div>
<input id="submit-date" type="button" class="btn btn-primary" value="Search" />
</div>

我使用JQuery脚本作为:

$('#submit-date').click(function() {
    var processDate = $('#processDate').val();
    alert(processDate);
    $.ajax({
        type : "POST",
        url : "launchapptest",
        data : processDate,
        dataType : "json",
        success : function(result) {
            alert("Success");
        }
    });
}

Struts.XML文件写为:


<action name="launchapptest" class="com.ge.wd.action.LaunchAppTestAction">
        <result type="json">
        </result>
</action>

我在Action Class中给出了执行方法:

String processDate;

public String getProcessDate() {
    return processDate;
}
public void setProcessDate(String processDate) {
    this.processDate = processDate;
}
public String execute() throws Exception {
    processDate=getProcessDate();
    System.out.println("Process Date : "+processDate);
}

请帮助我如何接收操作类中的数据。

感谢您的帮助。但问题解决了,我把代码改为:

HTML:

<div class="input-append date" id="from_date">
<input type="text" id="processDateForm" name="processDate"/>
<span class="add-on"><i class="icon-th"></i></span>
</div>
<div>
<input id="submit-date" type="button" class="btn btn-primary" value="Search" />
</div>

Jquery:

$('#submit-date').click(function() {
    var processDate = $('#processDateForm').val();
    alert(processDate);
    $.ajax({
        /* type : "POST", */
        url : "launchapptest",
        /* contentType: "application/json; charset=utf-8", */
        data : "processDateInput="+processDate,
        dataType : "json",
        async: true,
        success : function(result) {
            alert("Success");
        }
    });

和JAVA代码:

public class LaunchAppTestAction extends ActionSupport {
private static final long serialVersionUID = -367986889632883043L;
//private ProcessDate pd = new ProcessDate();
private String processDateInput=null;
public String getProcessDateInput() {
    return processDateInput;
}
public void setProcessDateInput(String processDateInput) {
    this.processDateInput = processDateInput;
}
public String execute() throws Exception {      
    System.out.println("Process Date : "+processDateInput);
    return SUCCESS;
}}

支柱.xml

<action name="launchapptest" class="com.ge.wd.action.LaunchAppTestAction">
    <result name= "success" type="json">
    </result>
</action>

我希望这对任何面临同样问题的人都有效:)再次感谢