我正在测试从Tomcat的Spring 2.0到Spring 3.0.5的升级,并且遇到一个问题,即带有斜杠的URL与没有斜杠的相同URL的映射行为不同。

例如,在我的Spring 2.0实现中,按照下面的Spring MVC XML配置,以下URL都将映射到相同的控制器类:

  • /search/categories
  • /search/categories/

<bean id="searchMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="order" value="1"/>
    <property name="mappings">
        <props>
            <prop key="/search/categories">categoriesController</prop>
        </props>
    </property>
</bean>

但是,在Spring 3.0.5中, /search/categories/ (注意斜杠)未映射到控制器。 仅映射/search/categories (不带斜杠)。

我知道XML配置已经过时了,不幸的是,我暂时还不能脱离它。 但是我不确定为什么在Spring 3.0.5中,带有斜杠的URL会有新的行为。 对可能的修复有任何建议或想法吗? 我是否需要执行一个Apache Rewrite条件来删除URL上的尾部斜杠?

谢谢你的帮助!

===============>>#1 票数:0

我想说最简单的解决方案是创建一个BeanPostProcessor来修剪尾部的斜杠。

或者更好的是BeanFactoryPostProcessor ,这样您就可以编辑bean定义,而不是实际的bean。

  ask by peltzdude translate from so

未解决问题?本站智能推荐:

1回复

Spring应用程序不在Tomcat中映射

我确信我在某处设置有问题,但是由于尝试了多个教程和解决方案( viralpatel.net , stackoverlow问题 , 另一个stackoverflow问题 ),我无法弄清楚哪里,但是我无法将简单的HelloWorld Spring MVC部署到tomcat 。 我已经在多台计算
1回复

让Spring DispacherServlet解析正确的URLmap

在我的Tomcat-Spring-Java项目中,我想要以下URL / index-显示输入页面 / login-登录页面 / cars /-列出可用的汽车 / cars / {id}-显示特定的汽车 / cars / {id} / action-对这辆特定的汽车进行操作
3回复

Spring URL映射问题

我在Spring框架中使用Java。 给定以下URL: 我需要使用作为参数传递给控制器​​的“数值”来映射所有映射到给定控制器的/contentitem/{numeric value}请求。 现在,在我的servlet容器xml中,我具有类似于以下内容的简单映射: 我只是
1回复

Spring BeanNameUrlHandlerMapping映射模式网址

我在Spring中有关于BeanNameUrlHandlerMapping的特定查询。 我的dispatcher-servlet.xml的一部分如下所示- 现在,发生的事情是,无论何时我尝试进入space_package.htm,它总是以space.htm结尾,并且最重要的是,无论我在
2回复

如何处理未在spring中映射的url

我的调度程序servlet映射 并且控制器具有处理程序 是否可以处理未在控制器中映射的请求 我试过@RequestMapping(value="*",method=RequestMethod.GET)但是做得很好
3回复

Spring Controller的URL请求映射无法按预期工作

我在web.xml中创建了一个映射,如下所示: 在我的控制器中我有这样的事情: 我的dispatcher-servlet.xml有一个视图解析器,如: 令我惊讶的是:请求.../about/us没有到达控制器中的myMethod1。 浏览器显示404错误。 我在方法中
2回复

控制器中的Spring MVC URL映射对于动态URL

我有一个带有一部分URL的页面,该URL是动态的,例如 页面recNo的最后一部分是传递给页面的参数。 但是,参数值已加密。 我想知道如何在控制器中设置urlMapping 。 我将发布数据,并且需要urlMapping来处理此表单。
2回复

如何在Spring MVC中为不存在的资源设置URL映射?

我想做的是,当用户输入无法到达任何地方的网址时,我的意思是该网址没有资源,因此特殊映射应该起作用。 例如,我有下一个控制器: @Controller public class LoginController { @RequestMapping(value = {"/", "/l
2回复

Spring MVC将多个URL映射到同一控制器方法

假设我们在web.xml中有3个用于名为dispatcher的servlet的url模式: 和控制器方法: 由于@RequestMapping中的路径值不包含servlet路径,因此当用户请求时 这些请求将全部映射到方法foo。 我认为,如果网站非常复杂,可能会导致
1回复

我可以将Spring的@RequestMapping和BeanNameUrlHandlerMapping相互结合使用来将URL映射到方法吗?

我想要做的是有一个公共的Service类,它有各种方法,如“search”“retriveByID”等。理想情况下,这个类将使用服务参数并填充请求对象并交给相应的数据源处理程序。 我想根据被搜索的域对象将服务类实例化为具有不同请求处理程序的Spring bean。 然后使用bean Be