如何服务 Spring-对 JSP 视图的休息响应

How To Serve Spring-Rest Response To JSP View

嗨,我不知道这个问题是否正确,但我怀疑这就是我发布这个问题的原因。

如果我使用@RestController,那么我可以将我的响应直接写入 HTTP 响应对象。但是,我想对 JSP 做出回应。如何响应 JSP?请帮我解决这个问题,我搜索并阅读了很多博客和网站,但仍然没有得到任何澄清。 #inWhosebug How to use Spring 4 Rest Controller to serve for Jsp view? 我得到了这个,但是在这里 有人问了同样的问题,这里建议他们使用@Controller代替@RestController JSP View.

@Controller:这个Annotation在Spring2.5版本中引入。为了支持 WEB 服务,spring 人使用 @ResponseBody 和 @Controller ,如果你使用 @ResponseBody 那么你可以直接将响应写入 Http Response。后来

@RestController:这个Annotation在Spring4.0版本引入,简单的不用@Controller+@ResponseBody可以用@RestController.

所以,最终在@RestController 的帮助下,我们可以将响应直接写入 HTTP 响应对象。此回复,我想发送到 JSP 查看。

我知道,通过使用 ajax 我们可以做到。但如果我使用 ajax,我只能将每个回复都放入同一页面。

在这里,如果我想将 JSP 与 Spring-Rest 的组合用于视图, 我怎样才能将我的回复传递给 jsp 视图。

请帮帮我。

您不应该将 RestController 用于 return 一个 jsp 页面,将您的注释更改为 @Controller 并使您的函数 return 成为一个 jsp 页面。

如果您需要提供休息服务和 return jsp,请参考

按照Quissal说的去做。

使用 rest 控制器,您的 return 类型通常是某种用于序列化的对象(例如 json),而不是 jsp 页面

要创建 Web 应用程序,您必须使用 @controller 和 jsp 映射。

网上有很多例子,比如: http://www.mkyong.com/spring3/spring-3-mvc-hello-world-example-annotation/

使用@Controller注解,在ModelMap中设置数据,returnString(应该是jsp名字)

控制器:-

@Controller
@RequestMapping("/product")
public class ProductController {

   @RequestMapping(method == RequestMethod.GET)
   public String getProduct(ModelMap model) {

       //get details from db and set to modelmap, testing hardcoded product name
      model.addAttribute("productName", "toys");
      return "productDetails";  
   }

Jsp 访问模型数据的页面,

productDetails.jsp

<html>
<head>
  <body>
     <h2>${productName}</h2>
  </body>
</head>
</html>