从ActionClass获取数据到jsp Struts2 [重复]

问题描述 投票:-1回答:2

我目前正在开展一个学校项目,包括使用Struts2 / jsp开发游戏。我遇到的问题是我无法使用jQuery从我的ActionClass获取数据到我的JSP。它的工作方式很好,我找到了多个来源。

这是我最小化的“GameAction.class”:

private String playerColor;
private Map<String,Object> applicationMap;

public String execute (){

playerColor = ((Joueur)applicationMap.get("joueur")).getPlayerColor();
    return SUCCESS;
}

注意:一切都有一个getter / setter。

game.js:

var $playerColor;
$(window).on('load', function () {

$.ajax({
    type : "GET",
    url : "gotoGameAction",
    data : "playerColor=",
    success : function (data) {
    $playerColor = data;
    var html = "<h2>" + $playerColor.toString() + "</h2>";
    $("#playerColor").html(html);
  }

})

});

Struts.xml:

<package name="default" extends="json-default" namespace="/">
    <action name="gotoGameAction" class="actions.logins.GameAction">
        <result name="success" type="json">/WEB-INF/views/game.jsp</result>
    </action>
</package>

我在JSP上的输出是:[object Object]。

我真的无法得到有人可以帮助的事情?谢谢!

java jquery jsp struts2
2个回答
0
投票

我在你的代码中发现了一些错误。它可能对你有所帮助。

在struts.xml中

它的

<result name="success" type="json">playerColor</result>

代替

<result name="success" type="json">/WEB-INF/views/game.jsp</result>

这里输入json这样的变量来传递。

并且playerColor应该在GameAction中使用getter方法。

在Ajax中调用简单

success : function (data) {
    $("#playerColor").html("<h2>" + data + "</h2>");
}

0
投票

您可能无法理解什么是JSON结果类型以及执行此结果类型的操作如何提供内容。

要获得有关插件和文档的更多信息,请参阅JSON Plugin

您还可以查看正在执行JSONResult的类的源代码。然后你看到了

/**
 * This result type doesn't have a default param, null is ok to reduce noise in logs
 */
public static final String DEFAULT_PARAM = null;

但是,如果您正在调试代码,这种噪音有时会有所帮助。

这对你的代码没有任何意义

<result name="success" type="json">/WEB-INF/views/game.jsp</result>

您需要深入研究教程和示例如何使用此结果。其中一个你可以找到here

另一个link可能会帮助您决定是否需要json结果或使用任何其他适合JSON响应的结果。

将所有这些结合在一起将有助于重写代码以使其正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.