java - 如何使用 Spring 提供 .html 文件

标签 java spring spring-mvc

我正在使用 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.htmlwebapp/static/并使用 return "static/index.html";根据您的方法,Spring 应该会找到 View 。

关于java - 如何使用 Spring 提供 .html 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15479213/

相关文章:

java - 是否值得学习谷歌数据存储

Spring MVC 4 响应主体序列化适用于 JSON 但不适用于 XML

java - JJTree 中的 SimpleNode 子节点

java - p :accordionPanel generates java. lang.NullPointerException

Java程序查询数据库错误

java - Spring Controller 的 Aop 注释不起作用

java - 是否可以从核心文件中确定用于启动 JVM 的 main 方法?

java - 使用 WebApplicationContext 的最低配置

java - 比较不同格式的两个日期

javascript - spring 的 css 和 js 问题