【发布时间】:2011-01-20 19:10:21
【问题描述】:
我有一个包含 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 映射器。如果我添加一个控制器,我如何返回 WebContent 目录中的 jsp 视图,因为视图解析器包含 /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>
【问题讨论】:
-
UrlFilenameViewController 只会将 URL 的模式解析为文件名,您不能将 URL“映射”到不同的文件。如果要将 /offers.html 映射到视图 sample.jsp,则需要一个控制器来处理 /offers.html 模式并返回 sample.jsp 作为视图。您可以从 myapp-servlet.xml 发布您的 SimpleUrlHandlerMapping 吗?
-
@Rob Beardow - 更新了 SimpleUrlHandlerMapping 和 InternalResourceViewResolver
标签: java spring spring-mvc url-rewriting prettyfaces