在 JSP 中,我可以使用下面的代码从动作类中获取 JSON。有人可以告诉我是否有办法在不使用 Ajax 的情况下从动作类接收响应(JSON)?
$.ajax({
url:"/StrutsExample1/helloWorld.do",
data:params,
type: "post",
dataType:"json",
success:function(response){
$.each(response,function(i){
$.each(response[i],function(key,value){
$('#info').html(key+" "+value);})
})
},
error: function(e){ alert("fail " + e);}
})
更新:
动作类中使用了以下代码。
response.setContentType("text/json; charset=utf-8");
JSONObject json = createJsonObject(); //to construct the JSON
PrintWriter out = response.getWriter();
out.print(json);
out.flush();
return mapping.findForward("success");
在 struts-config.xml 中,我在动作映射中有以下内容:
<action path="/helloWorld" type="test.action.HelloWorldAction" name="helloWorldForm">
<forward name="success" path="/index.jsp" />
然后,在 JSP 文件中,而不是像上面那样使用 Ajax 调用,它看起来像:
$(function(response){
$.each(response,function(i){
$.each(response[i],function(key,value){
$('#info').html(key+" "+value);})
})
})
但是,键和值在执行时未定义。JSON 在动作类中正确构造。请帮助指出如何将 JSON 传递给 jsp。