2010-02-10 75 views
1

我已經在我的web.xml文件如下:問題與Spring MVC中設置的URL映射2.5

<servlet> 
    <servlet-name>onBoardingUI</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>sample</servlet-name> 
    <url-pattern>*.html</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>sample</servlet-name> 
    <url-pattern>*.form</url-pattern> 
</servlet-mapping> 

和我的樣本-servlet.xml文件:

<bean id="multipartResolver" 
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 

    <!-- one of the properties available; the maximum file size in bytes --> 
    <!-- <property name="maxUploadSize" value="100000" /> --> 
</bean> 

<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
    <property name="mappings"> 
     <value> 
      /fileupload.form=fileUploadController 
     </value> 
    </property> 
</bean> 

<bean id="fileUploadController" class="com.wrightexpress.si.onboardingui.web.FileUploadController"> 
    <property name="commandClass" value="com.wrightexpress.si.onboardingui.service.UploadFile" /> 
    <property name="formView" value="process-file" /> 
    <property name="successView" value="results" /> 
</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" /> 
</bean> 

現在,當我部署應用程序,當遇到上下文根時,我會得到一個404。服務器日誌中沒有例外或任何內容。我意識到我正在設置URL處理程序,但由於某種原因沒有任何請求正在通過。我試過在web.xml中聲明servlet映射的各種形式都無濟於事。我有一個簡單的文件上傳表單,它具有fileupload.form的動作。

謝謝!

編輯:我有一系列的jsp頁面,目前正在通過上面定義的viewResolver服務。當我在那裏添加urlMapping bean時,這些停止工作。現在,我不知道如何處理這個問題,如果我只是在web.xml文件中應用/ *的servlet映射,我應該如何在sample-servlet.xml文件中指定哪個控制器將每個jsp綁定到除個別外?或者我如何保持web.xml的樣子,只有定義好的URL處理程序處理fileupload.form操作?

+0

什麼是你希望它做什麼? – skaffman 2010-02-10 15:37:19

+0

我不知道,我期望能夠訪問我定義的所有* .html頁面。只有當urlMapping bean被定義時,我才能獲得404s。 – Casey 2010-02-10 15:48:48

回答

0

一旦你開始定義URL映射,你將需要告訴spring mvc如何處理任何沒有專門映射的URL。嘗試添加下面的映射:

/*=urlFilenameViewController 

和以下bean來處理這些請求:

<bean id="urlFilenameViewController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController" /> 

UrlFilenameViewController會會直接傳遞的URI視圖解析器。例如example.com/ 指數的.html將被映射到WEB-INF/JSP/指數 .JSP

如果您需要使用URI的完整路徑(例如example.com/ 幫助/索引的.html映射到WEB-INF/JSP/幫助/索引的.jsp)
然後設置URL映射

<property name="alwaysUseFullPath" value="true" /> 
0

的alwaysUseFullPath屬性你確定你的web.xml北京時間吧? 您有一個名爲「onBoardingUI」的DispatcherServlet,但是您的servlet映射標籤確實會查找名爲「sample」的servlet。

不應該servlet的映射是:

<servlet> 
    <servlet-name>onBoardingUI</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>onBoardingUI</servlet-name> 
    <url-pattern>*.html</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>onBoardingUI</servlet-name> 
    <url-pattern>*.form</url-pattern> 
</servlet-mapping>