springboot同时使用html与jsp(亲测可用)

如果你已经使用了html后面需要增加jsp,这篇文章可以帮到你

你需要修改几个地方

第1:增加依赖包

在pom.xml

<!-- JSP相关依赖 -->
	<dependency>
	    <groupId>org.apache.tomcat.embed</groupId>
	    <artifactId>tomcat-embed-jasper</artifactId>
	</dependency>
	<dependency>
	    <groupId>javax.servlet</groupId>
	    <artifactId>jstl</artifactId>
	</dependency>

第2:修改application.properties

#html
spring.thymeleaf.prefix=classpath:/WebRoot/
spring.thymeleaf.suffix=.html
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.view-names=*
# JSP
spring.mvc.view.prefix=/jsp/
spring.mvc.view.suffix=.jsp
spring.mvc.view-names=jsp/

这里我解释一下,我在使用thymeleaf模板时,我指定了目录名称叫WebRoot,而你们默认的名称应该是thymeleaf。

spring.thymeleaf.suffix=.html这里是以.html为结尾的文件

spring.thymeleaf.view-names=*   这里是html的解析名称,在controller类里,你return"index";时用到的

spring.mvc.view.prefix=/jsp/ 这里是寻找目录webapp下目录jsp/下的内容

spring.mvc.view.suffix=.jsp 找到以.jsp为结尾的文件

spring.mvc.view-names=jsp/ 控制器类里用到的转发

第3:增加一个jsp控制器类

package com.student.platform.controller;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

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

@Controller
public class JspController {
		
    @RequestMapping("/show")
    public void show(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.getRequestDispatcher("/jsp/showmessage2.jsp").forward(request,response);
        
    }
}

第4:Maven install 一下,然后再启动springboot

访问jsp地址

localhost:8080/项目名称/show

访问html地址

和上面是一样的,看你控制器指向谁比如index.html

localhost:8080/项目名称/index

总结:本次采用request.getRequestDispatcher的方式访问jsp内容。百度找了很多答案,这个是比较靠谱的,其他的方法不知道哪里出了问题。老是返回500代码。

猜你喜欢

转载自blog.csdn.net/u014264125/article/details/139933250