2016-10-04 40 views
0

我打算爲兩種類型的列表擁有一個JSP:一種具有管理員字段,另一種不具有。但我認爲如果我只有一個列表可以將相應的行爲切換到請求列表的用戶,這將會很好,這使得維護更容易。使用Spring MVC切換JSP行爲

這是一個好主意嗎?如果是的話,幫我解決我的問題:

我有一個JSP與所有屬性的列表,但也有一些內部的

<c:if test="${BooleanAttributeFromController}"></c:if> 

在控制器,我有兩個映射:一個從默認列表,正常用戶確實有訪問權限,一個用於管理員列表,只有管理員纔有權訪問。在第二個列表中,如果用戶具有管理權限(雙重安全性),則傳遞此布爾屬性。使用

model.addAttribute("BooleanAttributeFromController", new Boolean(true)); 

但其表現來管理屬性列表,即時通訊,即使它加載列表中選擇正確的方式(使用其正確的映射,而不是重定向,因爲它被配置爲,如果用戶沒有管理員權限的情況發生)。

這兩個映射都重定向到同一個jsp,只有一個額外的屬性。爲什麼它不起作用?下面

更完整代碼:

控制器

@RequestMapping("getAnalysisList") 
    public String listAnalysis(Model model, HttpSession session){ 
     int userId = Integer.parseInt(session.getAttribute("userId").toString()); 
     List<Analysis> analysisList = dao.getAnalysisListPerUser(userId); 
     model.addAttribute("analysisList", analysisList); 
     return "analysis/analysisList"; 
    } 

    @RequestMapping("listAllAnalysis") 
    public String listAllAnalysis(Model model, HttpSession session){ 
     int userId = Integer.parseInt(session.getAttribute("userId").toString()); 
     if(userDao.isAdmin(userId)){ 
      List<Analysis> analysisList = dao.getAnalysisListAdmin(); 
      model.addAttribute("analysisList", analysisList); 
      model.addAttribute("completeList", new Boolean(true)); 
      return "analysis/analysisList"; 
     }else{ 
      return "redirect:index"; 
     } 
    } 

JSP表列表:

<table> 
     <tr> 
      <th><spring:message code="analysisList.Filename"></spring:message></th> 
      <th><spring:message code="analysisList.DateInserted"></spring:message></th> 
      <c:if test="${empty completeList}"> 
<!--   ToDo: Find how to toggle special list for admin type --> 
       <th><spring:message code="analysisList.User" /></th> 
       <th><spring:message code="analysisList.Expiration" /></th> 
       <th><spring:message code="analysisList.Flag" /></th> 
      </c:if> 
      <th><spring:message code="analysisList.ReportLink" /></th> 
     </tr> 
</table> 

回答

1

JSP有一個鮮爲人知的機理稱爲標籤文件,您可以在其中將部分頁面提取到組件庫,並用不同的參數調用它。聽起來可能是你需要的:

JEE Tutorial 5: Tag Files