我有一个spring MVC项目和一堆jsp文件。当我试图在WEB-INF/views/中访问我的jsp文件时,它给了我404。截图供参考。
krcsximq1#
您不能直接访问WEB-INF文件夹中的jsp页面。要访问它,您需要创建InternalResourceViewResolver bean来解析jsp页面的路径:
WEB-INF
InternalResourceViewResolver
@EnableWebMvc @Configuration public class AppConfig extends WebMvcConfigurerAdapter { @Bean public InternalResourceViewResolver viewResolver() { InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver(); internalResourceViewResolver.setPrefix("/WEB-INF/views/"); internalResourceViewResolver.setSuffix(".jsp"); return internalResourceViewResolver; }
然后在你的控制器中返回jsp页面的名字:
@Controller public class EmployeeController { @RequestMapping(value = "/add/employee", method = RequestMethod.GET) public String addEmployee(Model model) { return "addEmployee"; } }
现在点击URL:http://localhost:8181/SpringMVC_CRUD/add/employee
yvgpqqbh2#
WEB-INF中的内容不会暴露在公共URL空间中,您只能从其他文件中包含/访问它,这对于模板等非常有用(当然,您编译的代码也驻留在那里)。将您的公共JSP移出WEB-INF。
ej83mcc03#
在我的例子中,它是路由需要前缀/,错误404:
/
@Result(name = "test", location="result.jsp")
工作无错误:
@Result(name = "test", location="/result.jsp")
3条答案
按热度按时间krcsximq1#
您不能直接访问
WEB-INF
文件夹中的jsp页面。要访问它,您需要创建InternalResourceViewResolver
bean来解析jsp页面的路径:然后在你的控制器中返回jsp页面的名字:
现在点击URL:http://localhost:8181/SpringMVC_CRUD/add/employee
yvgpqqbh2#
WEB-INF
中的内容不会暴露在公共URL空间中,您只能从其他文件中包含/访问它,这对于模板等非常有用(当然,您编译的代码也驻留在那里)。将您的公共JSP移出
WEB-INF
。ej83mcc03#
在我的例子中,它是路由需要前缀
/
,错误404:
工作无错误: