java - 获取支持 bean 中的 jsf 组件 id

标签 java jsf jsf-2 richfaces

我有两个像这样的 jsf 组件:

 <a4j:commandButton id="cmdtop"

                   disabled="#{ViewDocument.locked or !(documentAttachmentBean.canEditAttachment )}"
                   action="#{documentAttachmentBean.onCmdIncreaseAttachmentCodeClick}"

                   ...


</a4j:commandButton>

<a4j:commandButton id="cmddown"
                   disabled="#{ViewDocument.locked or !(documentAttachmentBean.canEditAttachment )}"
                   action="#{documentAttachmentBean.onCmdDecreaseAttachmentCodeClick}">    
    ...                     

</a4j:commandButton>

在我的支持 bean 中,使用 canEditAttachment() 方法,我想检查它是否已被 cmdtop 或 cmddown 调用? 像这样的事情:

    public boolean getCanEditAttachment()
{
    if (somecode.getElementId.equals"cmdtop")
 //do something
 return true ;
  else if (somecode.getElementId.equals"cmddown")
  //do something else
   return false ;

}

如何找到 canEditAttachment() 是由谁调用的?

最佳答案

JSF中有一些全局变量。 组件就是其中之一。您可以使用 component 变量访问当前正在渲染的当前组件。

xhtml

<h:commandButton id="cmdtop"
                 disabled="#{myBackingBean.canEditAttachment(component.id)}"
                 value="Button 1"/>

<h:commandButton id="cmddown"
                 disabled="#{myBackingBean.canEditAttachment(component.id)}"
                 value="Button 2"/>

java

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

@ManagedBean
@ViewScoped
public class MyBackingBean {

    public boolean canEditAttachment(String componentId) {
        if ("cmdtop".equalsIgnoreCase(componentId))
            return true;
        else if ("cmddown".equalsIgnoreCase(componentId))
            return false;

        return true;
    }

}

关于java - 获取支持 bean 中的 jsf 组件 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26956546/

相关文章:

java - KeyListener 不起作用

java - ProGuard 中类路径前的感叹号有什么作用?

jsf - 评估是否设置了 MethodExpression 属性(获取 PropertyNotFoundException)

java - 如何从facelet中获得隐藏的值(value)?

security - 在 Glassfish 上进行 Realm 身份验证后重定向

java - Intellij IDEA 12. 返回上一个 Activity 选项卡

Java: boolean 表达式中的短路评估

jsf - JSF 中的 Web 过滤器

jsf - bean 和 jsf 验证注释 inisde 托管 bean 与实体 bean

jsf-2 - org.xml.sax.SAXException : Error Handling [jar:file:{app}/WEB-INF/lib/jsf-impl-2. 2.9.jar!/META-INF/mojarra_ext.taglib.xml@47,31]