如何为JSP视图提供Spring-Rest响应

时间:2018-05-30 12:43:52

标签: jsp spring-rest

嗨,我不知道这个问题与否,但我怀疑这就是为什么我发布了这个问题。

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

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

@RestController:这个Annotation在Spring4.0版本中引入,而不是使用@ Controller + @ ResponseBody,你可以使用@RestController。

所以,最后在@RestController的帮助下,我们可以直接将响应编写到HTTP响应对象中。这个Response,我想发送到JSP View。

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

在这里,如果我想在Spring-Rest的组合中使用JSP作为View, 我如何将我的响应传递给jsp视图。

请帮帮我。

3 个答案:

答案 0 :(得分:1)

您不应该使用RestController返回jsp页面,将注释更改为@Controller并使您的函数返回jsp页面。

如果您需要提供Rest服务并返回jsp,请参阅this answer

答案 1 :(得分:0)

按照Quissal的说法做好准备。

使用rest控件,你的返回类型通常是序列化的某种对象(比如json)而不是jsp页面

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

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

答案 2 :(得分:0)

使用@Controller批注,并在ModelMap中设置数据并返回String(应为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>