gpt4 book ai didi

Java 相当于 SSJS 中的 getComponent()

转载 作者:行者123 更新时间:2023-12-01 07:34:07 25 4
gpt4 key购买 nike

我知道我们可以在 Java 中像这样访问 XPage 全局对象

FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
...
...

但我无法找到使用 getComponent() is Java 的任何等效项。 Java中是否有类似于SSJS中的getComponent()的类或方法?

最佳答案

通过 Java 评估 SSJS 可能是最简单的。来自斯文的代码:

String valueExpr = "#{javascript: getComponent('xxx').getValue();}";
FacesContext fc = FacesContext.getCurrentInstance();
ExpressionEvaluatorImpl evaluator = new ExpressionEvaluatorImpl( fc );
ValueBinding vb = evaluator.createValueBinding( fc.getViewRoot(), valueExpr, null, null);
vreslt = (String) vb.getValue(fc);

How to call ad hoc SSJS from a Java Bean

这是 Karsten Lehmann 的纯 Java 解决方案:

/** 
* Finds an UIComponent by its component identifier in the current
* component tree.
*
* @param compId the component identifier to search for
* @return found UIComponent or null
*
* @throws NullPointerException if <code>compId</code> is null
*/
public static UIComponent findComponent(String compId) {
return findComponent(FacesContext.getCurrentInstance().getViewRoot(), compId);
}

/**
* Finds an UIComponent by its component identifier in the component tree
* below the specified <code>topComponent</code> top component.
*
* @param topComponent first component to be checked
* @param compId the component identifier to search for
* @return found UIComponent or null
*
* @throws NullPointerException if <code>compId</code> is null
*/
public static UIComponent findComponent(UIComponent topComponent, String compId) {
if (compId==null)
throw new NullPointerException("Component identifier cannot be null");

if (compId.equals(topComponent.getId()))
return topComponent;

if (topComponent.getChildCount()>0) {
List childComponents=topComponent.getChildren();

for (UIComponent currChildComponent : childComponents) {
UIComponent foundComponent=findComponent(currChildComponent, compId);
if (foundComponent!=null)
return foundComponent;
}
}
return null;
}

http://www.mindoo.com/web/blog.nsf/dx/18.07.2009191738KLENAL.htm

关于Java 相当于 SSJS 中的 getComponent(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14526915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com