
我最终找到了一种解决方法,可以从Spring MVC Portlet控制器返回“ JSON”。这是我的方法。
在我的控制器中:
@ResourceMapping("ajaxTest")public void ajaxHandler(ResourceRequest request, ResourceResponse response) throws IOException { OutputStream outStream = response.getPortletOutputStream(); StringBuffer buffer = new StringBuffer(); Map<String, String> testMap = new HashMap<String, String>(); testMap.put("foo", "bar"); String test = new JSonObject(testMap).toString(); buffer.append(test); outStream.write(buffer.toString().getBytes());}在“ view.jsp”中:
<portlet:resourceURL var="ajaxtest" id="ajaxTest"/><script type="text/javascript"> $.get('<%= ajaxtest %>', function(response) { var json = eval('(' + response + ')'); });</script>由于@ResourceMapping批注当前不支持返回JSON,因此我仅使用org.json.JSONObject将地图转换为JSON对象,然后返回此对象的toString()。@ResourceMapping的值应与resourceURL的ID匹配。使用eval将JSON字符串转换为Javascript会带来安全风险,但我只是将其包含在内,因为这是最简单的示例。如果您担心安全性,请使用JSON解析器。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)