0
我發現this答案非常有用,但我不明白爲什麼它的作品。
按照API pageContext getRequest()方法返回ServletRequest並且它不包含getUserPrincipal()方法。那麼爲什麼像這樣的工作頁的種類上下文的請求
<c:if test="${not empty pageContext.request.userPrincipal}">
<c:if test="${pageContext.request.isUserInRole('ADMIN')}">
User ${pageContext.request.userPrincipal.name} in ADMIN Group
</c:if>
</c:if>
是否存在隱式類型轉換或什麼?
你說過這一切! – aribeiro
但它爲什麼工作?如果pageContext.request在Java中返回ServletRequest,那麼如果不將其轉換爲HttpServletRequest重要性,則不能使用它的子類的方法。 –
在Java中這將是真實的。但是你發佈的代碼不是Java。它是JSP表達式語言,它是一種更加動態的語言。如果'getFoo()'getter方法在對象'bar'上可用,'bar.foo' EL表達式使用反射調用該getter,而不關心對象的類型。 –