Передача выражений EL или экземпляра управляемого компонента в jsp:include

У меня есть общие кнопки jsp:

<wow:button id="addButton" iconClass="add16 icon16x16"
            action="#{managedbean.addNew}" type="submit" immediate="true"
            value="#{lblMsg.label_add }" />

<wow:button id="deleteButton" iconClass="iconCancel"
            action="#{managedbean.delete}" type="submit"
            value="#{lblMsg.label_delete }" />

Это включается в другую страницу jsp через

<wow:outputText value="#{locationBean.disclaimer}"></wow:outputText> <br />
<jsp:include page="buttons.jsp">

На этой странице есть экземпляр управляемого компонента, используемый выражением EL. Я хочу передать этот экземпляр locationBean в buttons.jsp. Один из способов — установить значение параметра в jsp:include для имени компонента и использовать requestScope[beanName] в buttons.jsp.

Есть ли способ лучше?

Редактировать: wow — это наша собственная библиотека компонентов JSF.


person Rohit    schedule 21.07.2010    source источник


Ответы (1)


Используя устаревший JSP, я не думаю, что есть семантически лучшие способы. Однако ваш подход может сломаться, если вы измените область действия bean-компонента. Другой способ может состоять в том, чтобы вместо этого использовать JSTL c:set.

<c:set var="currentBean" value="#{locationBean}" scope="request" />
<jsp:include page="buttons.jsp" />

с участием

<h:commandButton action="#{currentBean.action}" />

Но это может конфликтовать с другими компонентами, которые по совпадению имеют такое же имя.

person BalusC    schedule 26.07.2010
comment
Я попробую это завтра и опубликую ответ. Спасибо! - person Rohit; 27.07.2010