[英]How to include a variable in a jsp tag?
我正在嘗試使用以下代碼動態包含一個jsp文件:
<%@include file="menus/top/${user.roleId}.jsp" %>
在這里,變量user.roleId
是一個在我的struts2動作中設置的int
。 我可以顯示以下內容:
<s:property value="user.roleId" />
我希望根據當前登錄用戶的roleId動態包含文件menus/top/1.jsp
或menus/top/2.jsp
等。 但是我收到包含include標記的以下異常:
Exception Name: org.apache.jasper.JasperException: File "menus/top/${user.roleId}.jsp" not found
我究竟做錯了什么?
<%@include %>
是靜態 include指令。 因此,在將JSP編譯為類時,將在編譯時使用它。 這意味着該指令中不能使用運行時變量。
您正在尋找<jsp:include>
,它在運行時動態包含資源。 閱讀本教程以獲取更多詳細信息。
使用<c:import>
標記。 由於它用於JSTL中的動態包含。
其中c
:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@include file="menus/top/${user.roleId}.jsp" %>
<s:include file="menus/top/%{user.roleId}.jsp"/>
文檔明確指出include指令未處理,因此不能包含需要運行時評估的表達式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.