Java 如何在JSP中从@ResponseBody获取列表?

Java 如何在JSP中从@ResponseBody获取列表?,java,spring,jsp,spring-mvc,Java,Spring,Jsp,Spring Mvc,我使用Spring MVC,我有一个方法控制器: @RequestMapping(value = "/listReader", method = RequestMethod.POST) public @ResponseBody List<Reader> getListReader(ModelMap model) { return libraryService.getAllReaders(); } @RequestMapping(va

我使用Spring MVC,我有一个方法控制器:

    @RequestMapping(value = "/listReader", method = RequestMethod.POST)
    public @ResponseBody
    List<Reader> getListReader(ModelMap model) {

        return libraryService.getAllReaders();
    }
@RequestMapping(value=“/listReader”,method=RequestMethod.POST)
公共@ResponseBody
列表getListReader(ModelMap模型){
返回libraryService.getAllReaders();
}
但我不知道:

  • 如何在JSP中使用list(我从方法
    getListReader
    通过
    @ResponseBody
    获得的list)
  • 如何在JSP中获取列表
  • 如何在JSP页面中显示列表
  • 如何在JSP中从
    @ResponseBody
    获取列表

请举个例子。

你不能
@ResponseBody
基本上是在告诉Spring:获取对象I(方法)return并使用支持它的任何序列化程序,然后将其直接写入HTTP响应的主体这里不涉及JSP。

相反,您应该将列表添加到模型中,并返回JSP的
字符串
视图名称

@RequestMapping(value = "/listReader", method = RequestMethod.POST)
public String getListReader(ModelMap model) {
    model.addAttribute("someKey", libraryService.getAllReaders());
    return "my-jsp";
}
然后您可以在JSP中使用EL来检索它

<h3>${someKey}</h3>
${someKey}
使用JSTL对其进行迭代

@RequestMapping(value = "/listReader", method = RequestMethod.POST)
定义端点的。 我建议使用
RequestMethod.GET
而不是
RequestMethod.POST
,因为您希望从服务器获得一些东西,而不是
将一些东西发布到服务器。
另一方面,如果要在JSP上使用该信息,有两种方法:

1) 一些视图可以通过一个
httpget
-请求来使用这些信息,比如jQuery或。获取数据后,可以将其插入HTML中

2) 您可以直接在页面上显示它,而不用
ajax

然后,您必须将列表放入一个列表中,您可以使用
表达式语言
在JSP上访问该列表。然后您必须删除
@ResponseBody
并返回相应的视图。

您的jsp如何请求SpringMVC?返回的媒体类型是什么?