如何使用Spring提供.html文件

2022-08-31 14:00:52

我正在使用Spring开发一个网站,并尝试提供不.jsp文件的资源(例如.html)

现在我已经注释掉了我的servlet配置的这一部分

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" 
        p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />

并尝试从控制器返回资源的完整路径。

@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";   
   }
}

索引.html文件存在于该文件夹中。

注意:当我将索引.html更改为索引时.jsp我的服务器现在可以正确提供页面。

谢谢。


答案 1

最初的问题是,配置指定了一个属性,因此 ViewResolver 实现类将添加到从您的方法返回的视图名称的末尾。suffix=".jsp".jsp

但是,由于您注释掉了 then,因此根据应用程序配置的其余部分,可能没有注册任何其他 ViewResolver。您可能会发现现在没有任何工作。InternalResourceViewResolver

由于文件是静态的,不需要 servlet 处理,因此使用 <mvc:resources/> 映射会更有效、更简单。这需要 Spring 3.0.4+。.html

例如:

<mvc:resources mapping="/static/**" location="/static/" />

这将传递从 开始的所有请求到目录。/static/webapp/static/

因此,通过输入和使用您的方法,Spring应该找到视图。index.htmlwebapp/static/return "static/index.html";


答案 2

我只想补充一点,你不需要为此实现一个控制器方法,因为你可以在servlet配置文件中使用视图控制器标签(Spring 3):

<mvc:view-controller path="/" view-name="/WEB-INF/jsp/index.html"/>

推荐