gpt4 book ai didi

java - Spring - 将一个 URL 重写为另一个

转载 作者:搜寻专家 更新时间:2023-10-31 08:08:06 25 4
gpt4 key购买 nike

我有一个包含 Flash 横幅的 Spring 2.5 应用程序。我没有 Flash 组件的源代码,但它有硬编码到以 .html 结尾的某些页面的链接 我希望能够将这些 .html 页面重定向到现有的 jsp 页面。我怎样才能让 Spring 将一些 .html 页面解析为 .jsp 页面?

我的项目看起来像:

WebContent
|
-sample.jsp
-another.jsp
WEB-INF
|
-myapp-servlet.xml
-web.xml

我希望 localhost:8080/offers.html 重定向到 localhost:8080/sample.jsp

我可以用 Spring 做到这一点吗?我已经在 myapp-servlet.xml 中定义了一个 SimpleUrlHandlerMapping 和 UrlFilenameViewController,它们必须继续提供它已经存在的页面。

在我的 web.xml 中,我有

<servlet-mapping>
<servlet-name>myapp</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>

更新

这是 URL 映射器。如果我添加一个 Controller ,我该如何返回 WebContent 目录中的 jsp View ,因为 View 解析器包含/WEB-INF/jsp 目录。

<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/page1.htm">page1Controller</prop>
<prop key="/page2.htm">page2Controller</prop>
</props>
</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" />
</bean>

最佳答案

我认为您可以从 tuckey.org 制作的开源 URL 重写库中获益。 SpringSource 的人认可这个库,因为如果你使用 Spring Roo 创建项目,它会自动为你设置,所以它质量很好。我已在多个项目中成功使用它。

参见 here为其主页。 Skaffman 是对的,您希望它“转发”而不是重定向,这是默认行为。

像这样在 web.xml 中配置它:

<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>

然后,在 WEB-INF/urlrewrite.xml 中有这样一个元素:

<rule>
<from>offers.html</from>
<to>offers.jsp</to>
</rule>

关于java - Spring - 将一个 URL 重写为另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2330630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com