Включить файл из значения динамического свойства

У меня есть проект на Java, который нужно использовать;

<%@include file="content.jsp" %>

чтобы включить файл в текущую страницу jsp.

Однако теперь мне нужно, чтобы content.jsp был динамическим.

Как я могу заменить все в кавычках на переменную?

So;

<%@include file=myVariable %>

person griegs    schedule 14.02.2011    source источник


Ответы (2)


Вместо использования статического включения вы можете использовать динамическое включение, тогда вы можете сделать что-то вроде этого: -

<jsp:include page="<%= myVariable %>" flush="true" />

or

<jsp:include page="${myVariable}" flush="true" />
person limc    schedule 14.02.2011
comment
Ах нет. потому что у меня есть переменные на моей главной странице, которые должны быть доступны с включенной страницы. Я не понимаю этого с ‹jsp:include - person griegs; 14.02.2011
comment
Вы можете передать параметр в динамическом включении, используя <jsp:param name="param1" value="value1" />, не так ли? - person limc; 14.02.2011
comment
Вы можете поместить эти переменные в запрос или сеанс? - person davogotland; 14.02.2011
comment
Нет, я не могу указать их в запросе или сеансе по причинам, очевидным только для клиента. Просто пробую подход jsp:param сейчас - person griegs; 14.02.2011
comment
@davogotland: Это то, что я собирался сказать. :) @griegs: если ваши переменные имеют строковое значение, то, вероятно, проще всего передать значения с помощью jsp:param. Но если у вас есть объекты и тому подобное, проще всего установить сохранение в запросе, а затем передать имя атрибута запроса, используя jsp:param, чтобы включенная страница могла получить объект из запроса, используя этот параметр. - person limc; 14.02.2011
comment
@limc это просто строковые значения. - person griegs; 14.02.2011

у меня есть обходной путь, используя статическое включение после закрытия тега, поэтому он все еще статичен и может использоваться так, как если бы вы назначали строку

        <% 

            switch(questionType){

                case 1:%><%@include file="qtypes/yesNo.jspf"%><%
                break; 
                case 5:%><%@include file="qtypes/eval.jspf"%><%
                break; 
                default :%><%@include file="qtypes/yesNo.jspf"%><%
                break; 
            } 

        %>
person Mahmoud Elsonbati    schedule 24.02.2016
comment
На самом деле это хороший вариант. Это снижает риск включения уязвимости JSP. find-sec-bugs.github.io/bugs.htm#JSP_INCLUDE - person h3xStream; 17.08.2016