今天遇到一个关于spring mvc InternalResourceViewResolver
的问题。老实说,这是项目结构:
可能stack在list block代码上有问题,我把截图放在这里。第一次写viewResolver.setPrefix("/")
。然后我写了一个简单的 Controller ,它有一个方法索引,其映射是索引并返回字符序列“索引”,在我看来输入 http://localhost:8080/ProjectName/index
应该返回一个 index.jsp 页面,实际上是一个404页面,所以我认为之前关于internalResourceViewResolver
的代码肯定有问题。
我已经在 STS 上实现了它,代码是这样写的: viewResover.setPrefix("/WEB-INF/classes/views/")
我知道这个文件夹在 projectName 文件夹下内容是那些运行时的jsp输出文件,但是当我换成IntelliJ Idea这个IDE的时候。我发现有一个“out”文件夹充当项目的输出文件夹,您也可以从第一张图片中看到。
说了那么多中间过程,有没有人能告诉我setPrefix
方法的参数应该怎么写,谢谢。
更新:
我将我的应用程序上下文部署为“hello”,但这似乎不适用于我的问题。
好的,这是 Controller 。
@Controller
public class HelloController {
@RequestMapping("/index")
public String hello(){
return "index";
}
}
最佳答案
根据您的项目结构,viewResolver.setPrefix("/")
是正确的。您能否在映射了 URL 的地方分享您的 Controller 的详细信息?映射到 URL“/index”的函数应返回名称为“index”的 ModelAndView。
相反,如果您只想将 index.jsp 页面加载为主页,请将此代码段添加到您的 web.xml 文件中:
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
现在,http://localhost:8080/ProjectName/应打开您的 index.jsp View 。
关于spring-mvc - SpringMVC 中的 InternalResourceViewResolver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39128068/