2015-07-02 61 views
0

我有一個spring mvc web應用程序,下面的代碼。當用戶沒有登錄時,我發送一個瓷磚視圖。春季MVC重定向是在url中添加一些參數

而當用戶登錄時,我重定向到特定的url模式。

@RequestMapping(value = "/login", method = RequestMethod.GET) 
    public String login() throws IOException { 
     if (logger.isDebugEnabled()) { 
      logger.debug("Requested with /login mapping"); 
     } 

     Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); 

     if (!(authentication instanceof AnonymousAuthenticationToken)) { 
      List<String> userRoles = AuthenticationUtils.getUserRoles(); 
      if (userRoles.contains("ROLE_ADMIN")) { 
       return "redirect:/admin.html"; 
      } else if (userRoles.contains("ROLE_USER")) { 
       return "redirect:/user.html"; 
      } 
     } 
     return "template"; 
    } 

我得到重定向,但有一些意外的參數。如何刪除它們?

http://localhost:8081/app/admin.html?total=48&loggedInUserRoles=207 

我已經嘗試過下面的url沒有成功。

Spring MVC Controller: Redirect without parameters being added to my url

我不知道其中的代碼部分被添加的參數。

+0

你爲什麼不只是把JSP中的頁面和使用這樣的回報「nameofjspwithoutextension」一回。所以admin.jsp會返回「admin」;.我也這樣做,它只是工作。 –

回答

2

你可以讓你的方法返回View而不是String,然後在某種程度上創造RedirectView

RedirectView view = new RedirectView(url); 
view.setExposeModelAttributes(false); 
return view;