Jsf 由同一搜索表单填充的多个字段

Jsf 由同一搜索表单填充的多个字段,jsf,Jsf,我有多个字段,需要用相同的值类型填充。查找这些字段的值需要快速搜索。因此,在每个字段旁边,我想到了一个调用简单搜索表单的按钮。所以基本上: Field 1 [...] Field 2 [...] Field 3 [...] ... 点击[…]按钮,在模式窗口中通过调用搜索表单,以避免不必要的页面导航。当在搜索表单中选择该值且模式窗口关闭时,将设置相应的字段X值 因此,简而言之,我希望能够将此[…]按钮放在任何我想要的地方,并以某种方式将其链接到我想要填充的字段 我该怎么做?据我所知,豆子注射剂

我有多个字段,需要用相同的值类型填充。查找这些字段的值需要快速搜索。因此,在每个字段旁边,我想到了一个调用简单搜索表单的按钮。所以基本上:

Field 1 [...]
Field 2 [...]
Field 3 [...]
...
点击
[…]
按钮,在模式窗口中通过
调用搜索表单,以避免不必要的页面导航。当在搜索表单中选择该值且模式窗口关闭时,将设置相应的
字段X

因此,简而言之,我希望能够将此
[…]
按钮放在任何我想要的地方,并以某种方式将其链接到我想要填充的字段


我该怎么做?据我所知,豆子注射剂不能用这个。我只是不知道从哪里开始

我做过类似的事情:

按钮的复合组件:inpbutton.xhtml

<composite:interface componentType="inpbutton">
    <composite:attribute name="value"     type="java.lang.Object"/>

...
<composite:implementation>
    <h:commandButton value="..." actionListener="#{cc.action()}"/>
@FacesComponent("inpbutton")
public class Inpbutton extends UIInput implements NamingContainer {

    public void action() {
        ValueExpression vx = getValueExpression("value");
        getBean(InpDialog.class).openDialog(vx);
    }
}

// static utilities from elsewhere

@SuppressWarnings({"unchecked"})
public static <T> T uncheckedCast(Object obj) {
        return (T) obj;
}
public static <T> T getBean(Class<T> cls) {
    BeanManager bm = CDI.current().getBeanManager();
    Bean<T> bean = uncheckedCast(bm.getBeans(cls).iterator().next());
    CreationalContext<T> ctx = bm.createCreationalContext(bean);
    return uncheckedCast(bm.getReference(bean, cls, ctx));
}
<h:inputText value="databean.entry1"/>
<X:inpbutton value="databean.entry1"/>
ValueExpression vx = null;

public void openDialog(ValueExpression val) {
    vx = val;
    // open the modal dialog with button -> dialogWorker()
}

public void dialogWorker() {
     // do the stuff

     // set the field X value
     if(vx!=null)
         vx.setValue(theResult);
}