Передача выражений EL или экземпляра управляемого компонента в jsp: include - PullRequest
0 голосов
/ 22 июля 2010

У меня есть общие кнопки 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.

1 Ответ

2 голосов
/ 26 июля 2010

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

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

с

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

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

...