2016-11-24 63 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文件放在資源文件夾中,它只是提供靜態內容,並且與安全場景無關。但是,請問您能告訴我什麼是解決這個問題的更好方法,因爲我長期以來一直在思考這個問題。 –