2010-02-10 74 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>