Как найти / получить мои относительные пути при использовании restful java и соответствующих JSP
Скажи, что у меня есть Контоллер.java, которая имеет эти 3 функции для направления трафика на 3 JSP (index.ЖСП, создать.джсп, покажи.jsp)
public class Controller
{
@GET
@Path("/index")
public void index(@Context HttpServletRequest request,
@Context HttpServletResponse response)
{
//If I get hit I redirect to index.jsp
}
@POST
@Path("/create")
public void create(@FormParam ("name") String name, @Context HttpServletRequest request)
@Context HttpServletResponse response
{
//if i get hit I take the form param name do stuff to create new instance of whatever
}
@GET
@Path("/show/{id}")
public void show (@PathParam(id) String id, @Context HttpServletRequest request,
@Context HttpServletResponse response)
{
//if I get hit I show the object with the given id from the url
}
}
В моем составном JSP
Индекс.jsp просто простая страница для отображения созданных типов-достаточно легко
Твори.jsp
Просто сформируйте тип и перенаправьте его обратно в индекс.jsp на submit
-- >Проблема: ссылка обратно на индекс.jsp будет <a href="index">index</a>
Шоу.jsp
просто форма с дефуальными значениями выбранных экземпляр и кнопка для возврата в индекс
-- Проблема: ссылка обратно на индекс.jsp будет <a href="../index">index</a>
Вопрос: Как я могу ссылаться на один и тот же путь на разных страницах без быть таким двусмысленным. Делает отдых api предлагают способ обойти это без необходимость узнать, где находится ваша страница относительно другого?
1 ответ:
Просто используйте доменные ссылки. То есть пусть он начинается с
/
. Путь к контексту можно получить динамически с помощьюHttpServletRequest#getContextPath()
.<a href="${pageContext.request.contextPath}/index">index</a>
Это закончится в HTML, как
Если вы устали повторять его каждый раз, используйте<a href="/yourwebappcontextpath/index">index</a>
<base>
. Смотрите также этот ответ.