【发布时间】:2014-03-23 11:49:25
【问题描述】:
我继承了一个(写得不好)Java web 应用程序,它有一堆我需要更改的 URL,但我不想为了 SEO 目的而破坏页面排名,所以我想让它们自动执行 301重定向。该应用程序使用 Spring 进行路线映射。我对 Spring 和 JavaEE 还很陌生,所以请原谅任何 n00bness 并帮助启发我。 :-)
应用程序的路由在src/main/webapp/WEB-INF/dispatcher-servlet.xml 中定义,它们被映射到处理每个请求的实际 JSP。有几十条路线需要改变。配置如下所示:
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="order" value="3" />
<property name="mappings">
<props>
<prop key="/foo.html">fooController</prop>
<prop key="/blah.html">barController</prop>
...
</props>
</property>
</bean>
在该文件的其他地方,定义了它们的控制器,例如:
<bean name="fooController"
class="org.springframework.web.servlet.mvc.ParameterizableViewController"
p:viewName="path/to/foo" />
<bean name="barController"
class="org.springframework.web.servlet.mvc.ParameterizableViewController"
p:viewName="path/to/bar" />
...
我想我应该能够编辑这些配置,以便为某些路由提供 301 重定向到其他路由,而无需求助于自定义控制器或类来处理重定向。我一直在谷歌搜索和搜索,但我没有找到它。这可能吗?如何?或者这样做的最佳实践是什么?
【问题讨论】:
-
我不确定它是否会起作用,因为我从未尝试过,但也许您可以将
p:viewName值更改为"redirect:/my/new/path"。我认为这可能有效,因为它是一个有效的视图名称。 -
成功了!谢谢@巴特。如果您将此作为答案发布,我会将其标记为正确。
标签: jsp jakarta-ee spring-mvc servlets