【问题标题】:Getting data from ActionClass to JSP in Struts 2 [duplicate]在Struts 2中从ActionClass获取数据到JSP [重复]
【发布时间】:2018-06-04 00:26:44
【问题描述】:

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


    【解决方案1】:

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

    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>");
    }
    

    【讨论】:

    • 我已经有了 playerColor 的 getter/setter 并且已经有了 type="json"。我在 html 中放置了数据而不是 playerColor 但仍然是同样的问题
    • result 中的struts.xml 标记怎么样。 @AymaneELJahrani
    • 我试图用 playerColor 代替我的链接:它不起作用
    • 在所有更改后是否重新加载应用程序。
    • 当然,我确实重新加载了所有内容。我会再次尝试清理所有东西并尝试确保
    【解决方案2】:

    您可能不了解什么是 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 响应的结果。

    将所有这些结合在一起将产生重写代码以使其正常工作的想法。

    【讨论】:

    • 你们都没有帮助我,我通过使用 $.getJSON 而不是使用 $.ajax 的经典获取请求解决了这个 mysefl。不过谢谢你:)
    • getJson 和 ajax 一样,默认设置属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    相关资源
    最近更新 更多