如何使用基于Spring MVC注释的Portlet控制器通过AJAX呈现JSON视图响应?

如何使用基于Spring MVC注释的Portlet控制器通过AJAX呈现JSON视图响应?,第1张

如何使用基于Spring MVC注释的Portlet控制器通过AJAX呈现JSON视图/响应?

我最终找到了一种解决方法,可以从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解析器。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5621907.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存