SpringMVC中的InternalResourceViewResolver

时间:2016-08-24 16:01:44

标签: spring-mvc tomcat intellij-idea

今天我发生了一个关于spring mvc InternalResourceViewResolver的问题。说实话,这是项目结构:
enter image description here

这是我的代码片段:
InternalResourceResolver has something wrong

也许堆栈在列表块代码上有一些麻烦,我把屏幕快照放在这里。我第一次写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";
    }
}

2 个答案:

答案 0 :(得分:0)

根据您的项目结构,viewResolver.setPrefix("/")是正确的。您可以分享您映射URL的控制器的详细信息吗?映射到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视图。

答案 1 :(得分:0)

好的!这个问题让我这几天更新了。我终于自己拿到了它。 viewResolver.setPrefix("/");是对的。但是为什么我设置它并启动tomcat会出现404错误,因为有些东西我误解了并按照这些步骤解决了这个问题: 1)转到项目结构(命令+;) 2)“Artifacts” - &gt;“+” - &gt;“Web应用程序:爆炸” - &gt;更改您喜欢的工件名称。这里是截图: my artifact 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!