您的位置:首页 > 编程语言 > Java开发

[Spring boot] web应用返回jsp页面

2017-04-25 13:27 323 查看
目标:在Controller方法中配置直接返回jsp页面

 

项目中添加src/main/webapp文件夹,没什么好说的。



 

 

下面详细介绍@Controller注解和@RestController注解的不同实现方法。

 

@Controller注解

1. application.properties文件中配置

# 配置jsp文件的位置,默认位置为:src/main/webapp
spring.mvc.view.prefix:/pages/  #指向jsp文件位置:src/main/webapp/pages

# 配置jsp文件的后缀
spring.mvc.view.suffix:.jsp


2. Controller文件中配置

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class ExampleController {

@RequestMapping(value = "/initpage", method = RequestMethod.GET)
public String doView() {
return "index"; // 可访问到:src/main/webapp/pages/index.jsp
}
}


3. 使用Application [main]方法启动

4. 访问url,访问到jsp页面

http://localhost:8080/initpage


 

@RestController注解

1. application.properties文件中配置

# 配置jsp文件的位置,默认位置为:src/main/webapp
spring.mvc.view.prefix:/pages/  #指向jsp文件位置:src/main/webapp/pages


# 配置jsp文件的后缀spring.mvc.view.suffix:.jsp
2. Controller文件中配置,同样可访问到:src/main/webapp/pages/index.jsp

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

@RestController
public class OvalAlarmController {

@RequestMapping(value = "/initpage", method = RequestMethod.GET)
public ModelAndView doView() {
ModelAndView mv = new ModelAndView("index");
return mv;
}
}


3. 使用Application [main]方法启动

4. 访问url,访问到jsp页面

http://localhost:8080/initpage


 

一个问题:

  按上面流程配置,还是访问不到页面怎么办?

可以尝试将application.properties的配置做如下修改,原因么,我也不晓得…

# 配置jsp文件的位置,默认位置为:src/main/webapp
spring.view.prefix:/pages/  # 看到区别了么,此处去掉的[.mvc]


# 配置jsp文件的后缀spring.view.suffix:.jsp #此处也去掉了[.mvc]
我自己建的spring boot(版本较旧),按上面的配置,运行ok,同事创建的spring boot(版本较新),必须加上[.mvc]才能运行ok. 

我的spring boot的pom.xml截图(要配置成:spring.view.prefix):





同事的spring boot的pom.xml截图(要配置成:spring.mvc.view.prefix):





 

 

另一个问题:

  spring boot直接返回jsp文件下载怎么解决?

原因:

  jsp文件没有被解析,pom.xml文件中只需添加如下配置。ok,问题解决。

<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<version>7.0.59</version>
</dependency>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: