我目前正在开展一个学校项目,其中包括使用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]。
我真的无法得到有人可以帮助的事情吗? 谢谢!
答案 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响应的任何其他结果。
将所有这些结合在一起会让您重新编写代码以使其正常工作。