我决定创建一个没有JSP的web-app,但只使用位于WEB-INF / pages目录下的HTML页面,我遇到了这个问题。
我已经制作了视图解析器:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="WEB-INF/pages/"/>
<property name="suffix" value=""/>
</bean>
我还导入了WEB-INF / pages中的所有资源:
<mvc:resources mapping="/**" location="WEB-INF/pages/"/>
我的控制器有以下视图:
@PreAuthorize("isAuthenticated()")
@RequestMapping("/")
public String indexPage() {
return "redirect:/index.html";
}
它适用于映射“/”(如果未经过身份验证,则重定向到登录页面),但由于将此页面作为静态资源导入,因此无法保护url“/index.html”(但它不适用于所有如果不导入它。)
答案 0 :(得分:3)
最后,我找到了解决方案。也许,任何人都会感兴趣。我有的主要servlet映射,有url-pattern:/ **
那是我的问题。据我所知,主要的servlet在某种程度上截获了viewResolver,即使它有这样的配置:<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".html"/>
</bean>
当我将servlet make的配置作为下一个配置时:
<servlet-mapping>
<servlet-name>main</servlet-name>
<url-pattern>/app/*</url-pattern>
</servlet-mapping>
一切都变好了。
答案 1 :(得分:0)
我不知道你为什么要这样做......因为把网页放在web-inf下是一种错误的做法.......
容器也无法访问web-inf文件夹下的静态内容。我遇到了完全相同的问题,请参阅resource problem post。
我从google搜索中找到的是你可以访问web-inf文件夹下的动态资源,但不能访问静态资源。我已尝试在第一个地方甚至regestring所有静态内容(即.css,js,html等),但没有任何效果。最后我移出了我的页面,它没有配置....
所以尝试将资源从 web-inf 移到 webcontent
下告诉我你是否有一些额外的东西。
感谢。