今天我发生了一个关于spring mvc InternalResourceViewResolver
的问题。说实话,这是项目结构:
也许堆栈在列表块代码上有一些麻烦,我把屏幕快照放在这里。我第一次写viewResolver.setPrefix("/")
。然后我写了一个简单的控制器,它有一个方法索引,其映射是索引并返回charsequence“index”,在我看来,键入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
public class HelloController {
@RequestMapping("/index")
public String hello(){
return "index";
}
}
答案 0 :(得分:0)
根据您的项目结构,viewResolver.setPrefix("/")
是正确的。您可以分享您映射URL的控制器的详细信息吗?映射到URL的函数" / index"应该返回名称为" index"。
相反,如果您只想将index.jsp页面加载为主页,请将此代码段添加到您的web.xml文件中:
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
现在,http://localhost:8080/ProjectName/应该打开index.jsp视图。
答案 1 :(得分:0)
好的!这个问题让我这几天更新了。我终于自己拿到了它。
viewResolver.setPrefix("/");
是对的。但是为什么我设置它并启动tomcat会出现404错误,因为有些东西我误解了并按照这些步骤解决了这个问题:
1)转到项目结构(命令+;)
2)“Artifacts” - &gt;“+” - &gt;“Web应用程序:爆炸” - &gt;更改您喜欢的工件名称。这里是截图:
3)“Facets” - &gt;“+” - &gt;“web” - &gt;“projectModule” - &gt;“fix”(本页右下角) - &gt;“include artifacts” - &gt; “中确定”
4)“编辑配置” - &gt;“部署” - &gt;“+” - &gt;“包含工件” - &gt;“确定”
在第三步之后我看到输出根文件夹已经改变了。有两个项目“WEB-INF”和blablabla.ok,这个问题应该已经结束了。
第四步在tomcat上进行一些配置并重启tomcat并输入url,ok!