在将公司的SpringMVC小项目改成SpringBoot的时候,jsp的跳转开始总是失败,后来弄好了,在此处做个简单记录。
1. 加载jsp是否需要模板引擎
使用模板引擎加载jsp的时候,可以加入thymeleaf
的依赖,此时jsp文件是放置在resource
下方的static
或者templates
文件夹中,进行读取。我在这里验证的是不使用模板引擎读取jsp的方式
2. pom依赖
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
3. 在src\main
下创建webapp目录
注意这个webapp要通过下面的步骤加入到项目中
4. 在webapp
目录中创建static文件夹,创建jsp
通过上面的操作,我们创建的webapp目录前的文件夹图案如下,创建jsp即可
5.使用controller中跳转视图的方式跳转到jsp
1. 引导类上配置前后缀
@Bean
public InternalResourceViewResolver setupViewResolver(){
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
// 设置视图前后缀
resolver.setPrefix("/static/");
resolver.setSuffix(".jsp");
return resolver;
}
2. 编写跳转代码
@RequestMapping(value="/error")
public ModelAndView oaError(@ModelAttribute(value="msg") String msg) throws UnsupportedEncodingException{
ModelAndView mv = new ModelAndView();
mv.addObject("msg",msg);
mv.setViewName("casError");
return mv;
}
6. 跳转成功
7. 总结:
我的项目中是有拦截器的,一开始我将jsp放在resource
下面的static
中,使用模板解析,总是会被拦截器拦截,设置放开static
目录也会出错。
最后使用上面的方式,发现这样跳转的jsp 是无需额外处理拦截器的。