【发布时间】:2014-07-09 15:31:06
【问题描述】:
我有一个复合组件按钮,动作来自一个属性。
<comp:interface>
<comp:attribute name="buttonId" required="false"/>
<comp:attribute name="action" required="false" method-signature="java.lang.String action()"/>
<comp:attribute name="alt"/>
<comp:attribute name="value" />
<comp:attribute name="immediate"/>
</comp:interface>
<comp:implementation>
<h:commandButton alt="#{cc.attrs.alt}" action="#{cc.attrs.action}"
value="#{cc.attrs.value}" id="#{cc.attrs.buttonId}"
immediate="#{cc.attrs.immediate}"/>
</comp:implementation>
当我创建按钮时,动作来自我的控制器。
<test:myButton value="Test" alt="test" action="{myController.doSomething}" immediate="true" buttonId="testId"/>
然后我有一个查找myController.doSomething的导航规则
<navigation-case>
<from-action>#{myController.doSomething}</from-action>
<from-outcome>success</from-outcome>
<to-view-id>/pages/test1.xhtml</to-view-id>
<redirect />
</navigation-case>
问题是当我点击按钮时,动作来自#{cc.attrs.action},所以我收到以下错误
Unable to find matching navigation case with from-view-id '/pages/test.xhtml' for action '#{cc.attrs.action}' with outcome 'success'
我怎样才能解决这个问题?
【问题讨论】:
-
这里我不确定,但我认为值得一试:尝试将
action="#{cc.attrs.action}"更改为action="#{bean[cc.attrs.action]}"并添加您的属性:<comp:attribute name="bean"/>,然后调用您的组件:@ 987654329@
标签: java jsf navigation richfaces composite-component