htmlspringspring-mvccontextpath

Spring MVC Request URLs in JSP


I am writing a web application using Spring MVC. I am using annotations for the controllers, etc. Everything is working fine, except when it comes to actual links in the application (form actions, <a> tags, etc.) Current, I have this (obviously abbreviated):

//In the controller
@RequestMapping(value="/admin/listPeople", method=RequestMethod.GET)

//In the JSP
<a href="/admin/listPeople">Go to People List</a>

When I directly enter the URL like "http://localhost:8080/MyApp/admin/listPeople", the page loads correctly. However, the link above does not work. It looses the application name "MyApp".

Does anyone know if there is a way to configure Spring to throw on the application name on there?

Let me know if you need to see any of my Spring configuration. I am using the standard dispatcher servlet with a view resolver, etc.


Solution

  • You need to prepend context path to your links.

    // 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>