从ActionClass获取数据到jsp Struts2

时间:2017-12-21 10:36:40

标签: java jquery jsp struts2

我目前正在开展一个学校项目,其中包括使用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]。

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

2 个答案:

答案 0 :(得分: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>");
}

答案 1 :(得分: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响应的任何其他结果。

将所有这些结合在一起会让您重新编写代码以使其正常工作。