URL生成Java Servlet的URL

时间:2011-05-28 14:13:06

标签: java servlets

传入的请求网址如下:/{root}/Details/View/{id}。我有一个servlet DetailsController,它基于一个人是否登录将显示“编辑”视图或“详细信息”视图:

if (user != null) {
    detailsViewModel.setUser((User) user);
    getServletContext().getRequestDispatcher("/edit.jsp").forward(request, response);
} else {
    getServletContext().getRequestDispatcher("/details.jsp").forward(request, response);
}

在修改视图中,有一个包含action="Update"的表单,我只想让它转到UpdateController上的/{root}/Update,但它正试图转到/{root}/Details/View/{id}/Update。我已设置上下文根但可用。

如果我放action="/Update",它会尝试在没有根的情况下转到localhost:8080/Update。这是因为我正在使用前锋吗?我怎样才能解决这个问题?如果我遗漏了你需要的细节,请告诉我。

1 个答案:

答案 0 :(得分:2)

您需要在EL中HttpServletRequest#getContextPath()的帮助下在表单操作URL中添加上下文路径。

<form action="${pageContext.request.contextPath}/Update">

这样就变成了"/{root}/Update"

另见: