-1
我正在使用「SPRING MVC」,我想重定向用戶到前一頁,當他們得到錯誤「訪問被拒絕」,所以我創建了一個從「AccessDeniedHandle」的工具如何獲取AccessDeniedHandle的前一頁url
我的問題是我怎麼能得到上一頁的鏈接?或者我應該使用控制器? 有什麼建議嗎?
我正在使用「SPRING MVC」,我想重定向用戶到前一頁,當他們得到錯誤「訪問被拒絕」,所以我創建了一個從「AccessDeniedHandle」的工具如何獲取AccessDeniedHandle的前一頁url
我的問題是我怎麼能得到上一頁的鏈接?或者我應該使用控制器? 有什麼建議嗎?
我發現使用控制器的解決方案,但如果你認爲你有更好的建議,請分享
彈簧security.xml文件
<security:http...>
...
<security:access-denied-handler error-page="/403" />
...
</security:http...>
myController.java
@RequestMapping(value="/403", method=RequestMethod.GET)
public void accessDenied(HttpSession session,HttpServletRequest request, HttpServletResponse response, Model model, Authentication auth) {
String previousPage = (String) session.getAttribute("previousPage");
if(previousPage.isEmpty())
{
if(request.isUserInRole("ROLE_ADMIN"))
{
try {
response.sendRedirect("olx/index");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if(request.isUserInRole("ROLE_USER"))
{
try {
response.sendRedirect("me/index");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
else
{
try {
response.sendRedirect(previousPage);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
in every jsp
<% Object thisPage = request.getAttribute("javax.servlet.forward.request_uri");
session.setAttribute("previousPage",thisPage); %>
請訪問[如何問](http://stackoverflow.com/help/how-to-ask)。這個問題需要很多編輯。 – rmlan
希望現在清楚@rmlan – Ashile