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);
}