【发布时间】:2017-02-20 04:58:40
【问题描述】:
我正在使用 Spring mvc 开发一个 Web 应用程序。我有显示数据库中所有项目的页面。如果我单击列出的任何项目,它将显示该特定项目的其他一些其他详细信息。这是通过使用@PathVariable 完成的。
@RequestMapping(value={"/project/{name}"})
public String viewProject(HttpServletRequest request,@PathVariable("name")
String projectName, ModelMap model){
.......
.......
}
以上是我的请求映射代码。我的网址是http://localhost:8083/releaseDashboard/project/CSOB.html(csob 是我的项目名称,releaseDashboard 是我的应用名称)。直到这我的应用程序工作正常。当我从这个页面点击主页按钮时,我的请求被映射到上面的控制器方法,我的 url 变成了 localhost:8083/releaseDashboard/project/home.html。但预期的网址是 localhost:8083/releaseDashboard/home.html
谁能帮帮我?我读到我们可以使用拦截器或过滤器来更改请求的 url。但我看不到任何代码sn-p。
更新
Web.xml
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
spring-servlet.xml
<context:component-scan base-package="com.suntec.reldashboard.controller" />
<context:component-scan base-package="com.suntec.reldashboard.service" />
<context:component-scan base-package="com.suntec.reldashboard.dao" />
<mvc:annotation-driven/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
【问题讨论】:
-
明白你想要什么。但不清楚你的错误是什么以及你做了什么。为什么链接有
.html?因为是Spring MVC,所以必须是http://localhost:8083/releaseDashboard/project/CSOB。 -
web.xml 就是这样配置的。这不是问题。如果我从 web.xml 中删除该 html,我的 url 将与您在 cmets 中提到的相同。
-
请使用您的配置文件 - web.xml、spring 配置文件等编辑您的问题。您是如何配置视图解析器的?
-
@RamanujanR 更新了我的问题。请看
标签: spring spring-mvc filter interceptor path-variables