当前位置: 首页 > 面试题库 >

如何在getter方法中获取调用组件的ID?

何安宜
2023-03-14
问题内容

给出以下示例:

<h:inputText id="foo" size="#{configBean.size}" />

我想在getter方法中获取id调用组件的foo,以便可以通过键从属性文件返回大小foo.length

public int getSize() {
    String componentId = "foo"; // Hardcoded, but I should be able to get the id somehow
    int size = variableConfig.getSizeFor(componentId);
    return size;
}

我该如何实现?


问题答案:

从JSF
2.0开始,组件范围中有了一个新的隐式EL变量:#{component}它引用当前UIComponent实例。在其getter方法中getId(),您需要一种。

因此,您可以执行以下操作:

<h:inputText id="foo" size="#{configBean.getSize(component.id)}" />

public int getSize(String componentId) {
    return variableConfig.getSizeFor(componentId);
}

另外,您也可以制作variableConfig一个,@ApplicationScoped @ManagedBean以便执行以下操作:

<h:inputText id="foo" size="#{variableConfig.getSizeFor(component.id)}" />

(每当您想将参数传递给方法时,都必须在EL中使用完整的方法名称而不是属性名称,因此variableConfig.sizeFor(component.id)将无法使用,或者您必须在类中将实际getSizeFor()方法重命名为sizeFor()



 类似资料:
  • 问题内容: Python:如何在被调用方法中获取调用者的方法名称? 假设我有2种方法: 如果我不想对method1进行任何更改,如何在method2中获取调用者的名称(在本示例中,名称为method1)? 问题答案: inspect.getframeinfo和其他相关功能可以帮助: 该自省旨在帮助调试和开发;建议不要将其用于生产功能。

  • 问题内容: Python:如何在被调用方法中获取调用者的方法名称? 假设我有2种方法: 如果我不想对method1进行任何更改,如何在method2中获取调用方的名称(在本示例中,名称为method1)? 问题答案: 和其他相关功能可以帮助: 该自省旨在帮助调试和开发;建议不要出于生产功能目的而依赖它。

  • 问题内容: 例如,方法调用方法。在方法中,如何获取文件名(我不想传递给方法)… 问题答案: 您可以使用该模块来实现此目的:

  • 问题内容: 我想获取方法的调用者类,即 在方法栏中,我需要获取类名称,然后找到了该方法: 但是,即使是,当我尝试调用它时,Eclipse 也会说: 访问限制:由于必需的库C:\ Program Files \ Java \ jre7 \ lib \ rt.jar的限制,无法访问类型为Reflection的方法getCallerClass() 还有其他选择吗? 问题答案: 你可以生成堆栈跟踪并使用S

  • 问题内容: 这是来自三个文件的一些示例代码: 我需要动态获取调用方函数的文件路径,而无需传递任何额外的参数。 问题答案: 您需要弄弄的内部运作。请参阅:有关JavaScript Stack Trace API的Wiki条目 。 我已经对提议的提交中的某些代码进行了一些测试,它似乎可以工作。您最终会走上一条绝对之路。 以及一个包含模块的测试: 您将在控制台上找到的绝对路径。 说明 这不是一个“ no

  • 问题内容: 我知道函数,但是我正在寻找一些易于使用的函数实现?如果它也提供了方法的类(如果确实是方法),那将是完美的。 问题答案: 该函数是了解这一点的唯一方法,如果您很懒,这是您自己编写代码的另一个原因。 对抗懒惰! :D