java - 使用 $.getJSON 的 Struts2 json 响应结果未定义响应

标签 java jquery ajax json struts2

我尝试使用 $.getJSON 方法从操作类获取 String 值,但得到的结果为 undefined。这是我尝试过的代码片段

脚本:

$(function() {
        $("#newPostionFormID").submit(
                function() {
                    var formInput = $(this).serialize();
                    $.getJSON('../employeeShifts/addnewposition.action',
                            formInput, function(jsonResponse) {
                                console.log(jsonResponse.positionAdded);
                            });
                    return false;
                });
    });

strus.xml:

<package name="employeeShifts" namespace="/employeeShifts"
                extends="struts-default,json-default">
     <action name="addnewposition" 
        class="com.vgt.intranet.employeeshifts.action.EmployeeShiftAction"
                    method="addNewPosition">
                    <result type="json">
                        <!-- <param name="excludeNullProperties">true</param>
                        <param name="noCache">true</param>
                        <param name="root">positionAdded</param> -->
                    </result>
        </action>
   </package>

Action 类别:

public class EmployeeShiftAction extends ActionSupport {
private String position;
private String positionAdded;

public String addNewPosition() {
    log.info("inside addNewPosition");
    position = this.getPosition();
    log.info("Position: " + position);
    positionAdded = position;
    log.info("positionAdded: " + positionAdded);
    return Action.SUCCESS;
}

public String getPosition() {
    return position;
}

public void setPosition(String position) {
    this.position = position;
}

public String getPositionAdded() {
    return positionAdded;
}

public void setPositionAdded(String positionAdded) {
    this.positionAdded = positionAdded;
}

控制台日志:

undefined

我不知道我哪里错了?任何帮助表示赞赏。

最佳答案

您可以使用 inlcude params 将多个对象定义为输出参数。 默认情况下,有时 JSON 调用会自动调用该 Controller 中的所有函数/方法,这些函数/方法的方法名称以“get”开头。因此请确保不会发生这种情况。

<result type="json">
<param name="excludeNullProperties">true</param>
     <param name="ignoreHierarchy">false</param>
     <param name="includeProperties">list1.*,list2.*,string</param>
</result>

关于java - 使用 $.getJSON 的 Struts2 json 响应结果未定义响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30452122/

相关文章:

java - 使用 XML 进行持久化抛出空指针异常

JQuery:如何将 CSS 类添加到 HTML 按钮?

javascript - 如何从异步调用返回响应?

java - 获取上个月的第一个和最后一个日期

java - Spring 在使用 * classpath 时没有这样的 bean

javascript - 当单击另一个按钮时,jQuery 重置事件按钮上的 css

php - 使用PHP回显Jquery执行.post();在 .click() 上;导致我无法解释的查询

Jquery ajax 随机错误仅在 Chrome 中出现

java - 如何在Spring初始化之前启动一个类?

javascript - 使用 jQuery 在 HTML 中实时更新输入