具有Facelets的模板和从模板组件调用操作?

时间:2010-06-30 20:47:23

标签: templates jsf servlets facelets

我是JSF,facelet,richfaces的新手...... 我理解托管bean,JSF组件中调用的方法 但是,我想使用带有ui:composition,ui:define的facelets模板,就像asp.net中的母版页一样

但我有一个意图在主页组件中调用的操作......我一直有同样的错误:

javax.servlet.ServletException: #{connectionMB.logOut}: javax.el.MethodNotFoundException: /masterPage.html @134,65 action="#{connectionMB.logOut}": Method not found: ConnectionBean

因为该组件位于模板页面masterPage.html:

<jsf:commandLink id="link" action="#{connectionMB.logOut}" >Log Out</jsf:commandLink>

并且用户操作来自以:

开头的其他html页面

页面被视为服务器端,apache将masterPages元素与其他页面的内容混合在一起... 但是我应该如何对任何页面的组件的masterPage工作进行调用?

在我的faces-config中,我尝试了很多东西:

<navigation-rule>
<from-view-id>/MySiteName/*</from-view-id>
<navigation-case>
        <from-action>#{connectionMB.logOut}</from-action>

<from-view-id>*</from-view-id>

<from-view-id>/masterPage.html</from-view-id>

这一切都不起作用......

如果有人得到了线索...... 非常感谢你!

2 个答案:

答案 0 :(得分:1)

您的问题(目前)不在导航案例中。对于他们 - 您可以完全省略<from-view-id>

问题是您的ConnectionBean没有public String logOut()方法(也可能是void)。

答案 1 :(得分:0)

好吧这完全是我的错。 您当然可以从主页调用方法,甚至不指定某些导航规则。 我的项目有一些错误,因此没有编译我开发的最后一些东西。就这样 ... 无论如何,谢谢你!