두 가지 유형의 목록에 대해 하나의 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>