簡體   English   中英

如何在jsp標記中包含變量?

[英]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.jspmenus/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" %>

改用struts2 include標簽

<s:include file="menus/top/%{user.roleId}.jsp"/>

文檔明確指出include指令未處理,因此不能包含需要運行時評估的表達式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM