我想介紹Spring MVC的到具有截至到JSP文件現在使用簡單的直接接入即www.example.com/login.jsp
其中包含業務邏輯和表示信息的應用程序。介紹Spring MVC的
我想帶出業務邏輯,只保留在JSP中呈現。要做到這一點,我已經搬離webapp/login.jsp
JSP文件到webapp/WEB-INF/jsp/login.jsp
然後映射所有的URL與模式*.jsp
Spring的DispatchServlet都到一個控制器,然後視其(應該)着/WEB-INF/jsp/login.jsp
。
的web.xml
看起來是這樣的:
<servlet>
<servlet-name>springapp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springapp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
springapp-context.xml的
<bean id="urlFilenameViewController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<value>
/*.jsp=urlFilenameViewController
</value>
</property>
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"></property>
</bean>
然而,這個最根本的問題是,我結束映射在.jsp
內部外部URL請求網絡請求也映射到.jsp
。然後,將內部.jsp
請求通過DispatchServlet無二返回,因爲它無法找到任何處理該請求的錯誤第二次:
WARN - DispatcherServlet.noHandlerFound(1077) | No mapping found for HTTP request with URI [/myapp/WEB-INF/jsp/login.jsp] in DispatcherServlet with name 'springapp'
既然我不能改變外部URL,是有辦法在將外部文件類型映射到相同的內部文件類型時繞過此問題?
我猜你不能夠只是提出不同的文件擴展名的外部URL,如熱媒? – 2009-08-14 18:05:34
不,很不幸,我無法更改外部URL,因爲我們已經有依賴它們的客戶端。 – 2009-08-17 07:35:47