Alvins
Alvins

Reputation: 887

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?

Upvotes: 1

Views: 1711

Answers (3)

saikumarm
saikumarm

Reputation: 1575

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.

Upvotes: 0

Sandeep Patange
Sandeep Patange

Reputation: 459

Try using a JSP Expression Language (EL) as ${pagename} instead of <%=pagename%>

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

Upvotes: 4

ramp
ramp

Reputation: 1256

You could use a RequestDispatcher directly.

<%

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

Upvotes: 0

Related Questions