我正在使用Spring开发一个网站,并且我正在尝试提供不是.jsp文件的资源(例如.html)现在我已经注释掉了我的servlet配置的这一部分 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />并试图从控制器返回资源的完整路径。@Controllerpublic class LandingPageController {protected static Logger logger = Logger.getLogger(LandingPageController.class);@RequestMapping({"/","/home"})public String showHomePage(Map<String, Object> model) { return "/WEB-INF/jsp/index.html"; }}index.html文件存在于该文件夹中。注意:当我将index.html更改为index.jsp时,我的服务器现在正确地提供页面。谢谢。
3 回答
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
最初的问题是配置指定了一个属性,suffix=".jsp"因此ViewResolver实现类将添加.jsp到从方法返回的视图名称的末尾。
但是,由于您注释掉了InternalResourceViewResolver那时,根据应用程序配置的其余部分,可能没有注册任何其他ViewResolver。您可能会发现现在没有任何工作。
由于.html文件是静态的,并且不需要servlet处理,因此使用<mvc:resources/>映射更有效,也更简单。这需要Spring 3.0.4+。
例如:
<mvc:resources mapping="/static/**" location="/static/" />
这将通过启动与所有请求/static/的webapp/static/目录。
因此,通过从您的方法index.html中输入webapp/static/和使用return "static/index.html";,Spring应该找到视图。
达令说
TA贡献1821条经验 获得超6个赞
我只是补充一点,你不需要为它实现一个控制器方法,因为你可以在servlet配置文件中使用view-controller标签(Spring 3):
<mvc:view-controller path="/" view-name="/WEB-INF/jsp/index.html"/>
- 3 回答
- 0 关注
- 899 浏览
添加回答
举报
0/150
提交
取消