我目前正在开展一个学校项目,包括使用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]。
我真的无法得到有人可以帮助的事情?谢谢!
我在你的代码中发现了一些错误。它可能对你有所帮助。
在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>");
}
您可能无法理解什么是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响应的结果。
将所有这些结合在一起将有助于重写代码以使其正常工作。