2

当我的控制器类不返回模型和视图对象时,内部资源视图解析器如何工作?它如何映射到视图?

这是控制器类的代码片段:

@RequestMapping(value = "/abc", method = RequestMethod.GET)
public @ResponseBody
List<Map<String, Object>> getabc() 
{
    return jdbcDa.abc();
}

这是调度程序 servlet 的代码片段:

<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <beans:property name="prefix" value="/WEB-INF/views/" />
    <beans:property name="suffix" value=".jsp" />
</beans:bean>
4

2 回答 2

1

此处不涉及内部视图解析器,您已使用注释@ResponseBody并且该方法不返回字符串/视图名称。

返回的数据不会映射到视图。根据原始请求的内容类型将其转换为 json 或 xml。

带有注释的方法@ResponseBody通常会使用 javascript 异步调用,然后在 Web 应用程序中将返回的数据添加到 dom 的特定部分。

于 2013-06-14T09:44:08.210 回答
0

您的方法由 注释@ResponseBody,因此该方法会将 转换List<Map<String, Object>>为 JSON,并且不会映射到视图。

如果你想映射日期来查看,你可以从这个界面使用 AJAX 请求日期@RequestMapping(value = "/abc", method = RequestMethod.GET),并使用 Javascript 在视图上显示日期。就像这个片段一样:

$.getJSON('/abc', function (date) {
     var s = "";
     $.each(date, function (i, obj) {
          //use javascript to add date to variable s
     });
     //add s to view element
     $("#tag-list").append(s);
});
于 2019-03-11T02:53:26.170 回答