2

我有许多 outputLink 菜单,我从数据库 mysql 生成它们,例如:

<ui:repeat value="#{loginAction.subMenusBeans.subMenusBeansList}" 
var="subMenusBeansList">
<ui:fragment rendered="#{menusBeansList.menuId == subMenusBeansList.menuId}" >   

<h:commandLink id="circlLink" value="#{subMenusBeansList.subMenuName}"  
action="{subMenusBeansList.subMenuLink}" />
</ui:fragment>
</ui:repeat>

我从数据库中获取操作值并将其设置为“subMenusBeansList.subMenuLink”

输出:

head quarter
main offices
offices
and so on..

当我点击上述任何链接时

异常: action="#{subMenusBeansList.subMenuLink}":找不到方法:

我想从数据库设置操作方法名称,因为我有很多超链接,并且想从数据库设置所有链接操作并使用 ui:repeat 将它们生成为 xhtml 但是当我单击从#{subMenusBeansList.subMenuLink}'抛出异常生成的任何超链接操作时

 javax.servlet.ServletException: javax.el.MethodNotFoundException: /template/
    templateslider.xhtml @36,135 action="#{subMenusBeansList.subMenuLink}":
 Method not found: com.ss.managedbeans.SubMenusBeans@552edddd.subMenuLink()
4

1 回答 1

0

您在这里遇到的问题是它<h:outputLink action="XXXX">实际上需要一个 MethodExpression,这就是为什么它没有尝试为您的属性“subMenuLink”解析 getter。

正如 BalusC 建议的那样,您可能想要的是使用 ` 代替。此属性需要一个 ValueExpression,并且应该能够解析您的属性及其 getter。

于 2013-03-22T19:35:54.203 回答