1

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

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

        return libraryService.getAllReaders();
    }

但是我不知道:

  • 如何在 JSP中使用列表(我从方法getListReaderby获得)?@ResponseBody
  • 如何在 JSP 中获取列表?
  • 如何在 JSP 页面中显示列表?
  • 如何从@ResponseBodyJSP 中获取列表?

请举个例子。

4

2 回答 2

3

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

相反,您应该将列表添加到模型中并返回StringJSP 的视图名称。

@RequestMapping(value = "/listReader", method = RequestMethod.POST)
public String getListReader(ModelMap model) {
    model.addAttribute("someKey", libraryService.getAllReaders());
    return "my-jsp";
}

然后你可以在 JSP 中使用 EL 来检索它

<h3>${someKey}</h3>

使用 JSTL 对其进行迭代。

于 2013-10-03T19:19:41.957 回答
0
@RequestMapping(value = "/listReader", method = RequestMethod.POST)

这定义了一个Endpoint。我建议使用RequestMethod.GETthan RequestMethod.POST,因为您想要来自服务器的POSTING东西而不是服务器的东西。另一方面,如果您想在 JSP 上使用该信息,有两种方法:

1)某些视图可以通过http-GET-Request (如jQuery 或ajax中的$.get )使用该信息。获得数据后,您可以将其插入 HTML

ajax2)您可以直接在页面上显示它,而不是使用它。然后,您必须将您的 List 放入一个Model中,您可以使用它访问您的 JSP Expression Language。然后,您必须删除@ResponseBody并返回相应的视图。

于 2013-10-03T19:33:03.353 回答