引自免费微信小程序:皆我百晓生
根据您提供的信息,看起来您正在尝试在Spring Boot 1.5版本中使用JSP作为视图技术,但是遇到了404错误。以下是解决这个问题的步骤:
首先,确保您的项目结构是正确的。对于传统的Spring MVC项目,JSP文件应该放在src/main/webapp/WEB-INF/jsp目录下(而不是像您所示的src/main/resources)。然后,您可以将JSP的前缀设置为/jsp,而不是/WEB-INF/center/。
下面是调整后的项目结构示例:
.
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── example
│ │ │ ├── controller
│ │ │ │ ├── TestController.java
│ │ │ │ └── UsersController.java
│ │ ├── resources
│ │ │ ├── application.properties
│ │ │ ├── application.yaml
│ │ │ ├── log4j.properties
│ │ ├── webapp
│ │ │ ├── WEB-INF
│ │ │ │ ├── jsp
│ │ │ │ │ ├── hello.jsp
│ │ │ │ │ ├── login.jsp
│ │ │ │ │ └── center.jsp
│ │ │ ├── static
│ │ │ │ ├── css
│ │ │ │ ├── js
│ │ │ │ └── img
│ │ │ └──WEB-INF
│ │ │ └── web.xml
│ ├── test
│ └── video_mapper
└── target
└── ...
接下来,在application.properties或application.yaml中,更新视图配置为:
spring.mvc.view.prefix=/jsp/
spring.mvc.view.suffix=.jsp
由于Spring Boot 1.5不支持.action的URL模式,您需要在控制器方法上使用@RequestMapping(value = "/center")而不是@RequestMapping(value = "/center.action")。
这里是修改后的TestController类:
package com.example.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@RequestMapping("/hello")
public String toHello() {
System.out.println("/hello running...");
return "hello";
}
@RequestMapping("/login")
public String toLogin() {
System.out.println("Login page loading...");
return "login";
}
@RequestMapping("/center")
public String toCenter() {
System.out.println("Center page loading...");
return "center";
}
}
最后,确认一下您的web.xml文件是否正确配置了DispatcherServlet。如果没有,添加以下内容到web.xml:
dispatcher
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
/WEB-INF/spring/appServlet/servlet-context.xml
1
dispatcher
/
注意替换servlet-context.xml为实际的Spring MVC配置文件路径,如果使用Java配置则不需要这个文件。
按照这些步骤进行更改后,重新启动应用并访问以下URL:
/hello: 显示hello.jsp/login: 显示login.jsp/center: 显示center.jsp
这样,你应该可以正常地看到JSP页面了。如果还有问题,请检查Tomcat服务器的日志输出,以获取更详细的错误信息。
