我正在使用 Spring 开发一个网站,并尝试提供非 .jsp 文件(例如 .html)的资源
现在我已经注释掉了我的 servlet 配置的这一部分
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />
并尝试从 Controller 返回资源的完整路径。
@Controller
public 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 时,我的服务器现在可以正确地提供页面。
谢谢。
最佳答案
最初的问题是配置指定了一个属性suffix=".jsp"
因此 ViewResolver 实现类将添加 .jsp
到从您的方法返回的 View 名称的末尾。
但是,自从您注释掉了 InternalResourceViewResolver
然后,根据您的应用程序配置的其余部分,可能没有任何其他 ViewResolver 注册。您可能会发现现在没有任何效果。
自从 .html
文件是静态的,不需要 servlet 处理,那么使用 <mvc:resources/>
mapping 会更高效、更简单。 .这需要 Spring 3.0.4+。
例如:
<mvc:resources mapping="/static/**" location="/static/" />
这将通过所有以 /static/
开头的请求到webapp/static/
目录。
所以把 index.html
在 webapp/static/
并使用 return "static/index.html";
根据您的方法,Spring 应该会找到 View 。
关于java - 如何使用 Spring 提供 .html 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15479213/