2016-11-24 62 views
0

的Html整合我,我用JSP和Spring MVC和做工精细做样品POC,我DispatcherServlet的配置和使用InternalResourceViewResolver这样与Spring MVC

<servlet> 
     <servlet-name>appServlet</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
</servlet> 

    <servlet-mapping> 
     <servlet-name>appServlet</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

和我的servlet-context.xml中我配置的InternalResourceViewResolver喜欢这

<beans:bean 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <beans:property name="prefix" value="/WEB-INF/views/" /> 
     <beans:property name="suffix" value=".jsp" /> 
</beans:bean> 

我的请求和响应工作良好。 现在我要开始使用HTML,而不是JSP一个新的样本项目,我改变的InternalResourceViewResolver这样

class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
      <beans:property name="prefix" value="/WEB-INF/views/" /> 
      <beans:property name="suffix" value=".html" /> 
</beans:bean> 

,但我得到一个异常

“信息:警告:org.springframework.web。 servlet.PageNotFound - 未找到与URI [/Organization_Management/WEB-INF/views/check.html在DispatcherServlet的名称为HTTP请求“appServlet””

我要开始使用HTML和春天新的样本应用程序映射MVC。 任何人都可以在这方面给我建议。

+0

你怎么称呼该网址? – kuhajeyan

+0

http://stackoverflow.com/questions/24670327/welcome-file-not-working-with-html-file-in-spring,这可能有帮助 – Valath

回答

0

解决方案1:的InternalResourceViewResolver你可以离开后缀部分的InternalResourceViewResolver将解决双方的.jsp和.html文件。

但请确保在您的控制器中,您有方法返回基于后缀返回jsp视图的html视图和方法。例如,如果index.html,然后index.jsp的无论是在WEB-INF存在/页,你可以这样做:

@RequestMapping("/htmlView") 
    public String renderHtmlView() { 
     return "index.html"; 
} 

@RequestMapping("/jspView") 
    public String renderJspView() { 
     return "index.jsp"; 
} 

解决方案2: 由于.html文件是静态的,不要求处理一个servlet,那么使用映射更高效,更简单。这需要Spring 3.0.4+。

例如:

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

这将穿过开始的所有请求/静态/向web应用/静态/目录。

所以通过将index.html放入webapp/static /中并使用return“static/index.html”;从你的方法来看,Spring应该找到视图。

+1

它不推荐。当您使用spring安全资源配置为ANONYMOUS用户时,通常允许所有用户使用资源。将资源视为资源将导致OPEN全力以赴。 – ScanQR

+0

@TechBreak我在脑海里也有这样的事情。但是我后来认为把简单的html文件放在资源文件夹中,它只是提供静态内容,并且与安全场景无关。但是,请问您能告诉我什么是解决这个问题的更好方法,因为我长期以来一直在思考这个问题。 –