简体   繁体   中英

Include JSP page using variable

I need to include different JSP pages whose name is contained in a variable:

String pagename = myObject.getPage();
%><jsp:include page="<%=pagename%>"  flush="true"></jsp:include><%

But this syntax is not allowed. How can I achieve the same result without use a switch-case?

尝试使用JSP Expression Language (EL)作为${pagename}而不是<%=pagename%>

<jsp:include page="${pagename}"  flush="true"></jsp:include>

You could use a RequestDispatcher directly.

<%

         RequestDispatcher rd = request.getRequestDispatcher(pagename);
         rd.include(request, response);
%>

Expression language is good practice.However to use Expression language and access objects and member variables they should be available in the scopes like application , request, page etc.

if you have your page details as parameter in request object and its unique.

<jsp:include page ="{param.pagename}"></jsp:include> will suffice, where pagename is the request parameter name.

however if you have your page details set as attributes in request or session or application use requestScope.pagename or sessionScope.pagename or applicationScope.pagename to access the page info.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM