JSF 2.0 - передать результат в виде строки в составной компонент - PullRequest
1 голос
/ 01 августа 2011

Я создаю простой составной компонент с jsf2, и я застрял из-за глупой проблемы.

Я не знаю, как отправить в составной файл результат в качестве параметра, который будетиспользуется как действие для commandLink.

Пример:

<!-- Usage -->
<my:comp myAction="myOutcome" />

<!-- Component -->
<composite:interface>
    <composite:attribute name="myAction" required="true" />
</composite:interface>

<composite:implementation>
    <h:form>
        <h:commandLink action="#{cc.attrs.myAction}" value="Go" />
    </h:form>
</composite:implementation>

<!-- Expected result -->
<h:form><h:commandLink action="myOutcome" value="Go" /></h:form>

Я прочитал эту тему , но безуспешно.

Единственное решение, которое яВы обнаружили, что в качестве перенаправителя используется управляемый компонент:

<h:commandLink action="#{redirectorBean.go(cc.attrs.myMaction)}" value="Go" />.

Кто-то может помочь мне достичь этого с помощью лучшего (более простого) решения?

Спасибо

1 Ответ

1 голос
/ 01 августа 2011

Имя атрибута должно быть action, и вам необходимо указать атрибут targets составного атрибута, который ссылается на относительный идентификатор клиента командной строки.

Использование:

<my:comp action="myOutcome" />

Композитный компонент:

<composite:interface>
    <composite:attribute name="action" targets="form:go" required="true" />
</composite:interface>

<composite:implementation>
    <h:form id="form">
        <h:commandLink id="go" value="Go" />
    </h:form>
</composite:implementation>
...