Sno*_*irl 20 html spring spring-mvc contextpath
我正在使用Spring MVC编写Web应用程序.我正在使用控制器的注释等.一切都工作正常,除了它涉及应用程序中的实际链接(表单操作,<a>
标签等)当前,我有这个(显然缩写):
//In the controller
@RequestMapping(value="/admin/listPeople", method=RequestMethod.GET)
//In the JSP
<a href="/admin/listPeople">Go to People List</a>
Run Code Online (Sandbox Code Playgroud)
当我直接输入"http:// localhost:8080/MyApp/admin/listPeople"这样的URL时,页面会正确加载.但是,上面的链接不起作用.它丢失了应用程序名称"MyApp".
有谁知道是否有办法配置Spring在那里抛出应用程序名称?
如果您需要查看我的任何Spring配置,请告诉我.我正在使用带有视图解析器等的标准调度程序servlet.
cra*_*man 46
您需要在链接之前添加上下文路径.
// somewhere on the top of your JSP
<c:set var="contextPath" value="${pageContext.request.contextPath}"/>
...
<a href="${contextPath}/admin/listPeople">Go to People List</a>
Run Code Online (Sandbox Code Playgroud)
Jas*_*man 13
该c:url
标签将上下文路径追加到您的网址.例如:
<c:url value="/admin/listPeople"/>
Run Code Online (Sandbox Code Playgroud)
或者,我更喜欢在我的Spring MVC应用程序中尽可能多地使用相对URL.因此,如果页面处于/MyApp/index
,链接<a href="admin/listPeople">
将带我到listPeople
页面.
如果您更深入了解URL层次结构,这也适用.您可以使用它..
来遍历一个级别.所以在页面上/MyApp/admin/people/aPerson
,使用<a href="../listPeople">
将返回列表页面
我更喜欢使用BASE标签:
<base href="${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}/" />
Run Code Online (Sandbox Code Playgroud)
然后,您的所有链接都可以是:
<a href="admin/listPeople">Go to People List</a>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
66791 次 |
最近记录: |