gpt4 book ai didi

jsf-2 - 如何对 h :selectOneMenu? 中的值更改执行转换

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

通常我会做类似下面的事情。单击按钮执行转换。

<!-- view -->
<h:form>
<h:commandButton action="doit">
<f:ajax render="@form"/>
</h:commandButton>
</h:form>

<!-- flow -->
<transition on="doit">...</transition>

如何在(例如)h:selectOneMenu 中更改值时触发转换?

<h:form>
<h:selectOneMenu value="#{selected}">
<f:selectItems value="#{items}/>
<f:ajax event="valueChange" render="@form" />
</h:selectOneMenu>
</h:form>


编辑:我考虑过将监听器注册到 f:ajax 并准备 webflow 事件,但是如何使用该事件...?有人帮忙吗?

<h:form>
<h:selectOneMenu value="#{selected}">
<f:selectItems value="#{items}/>
<f:ajax event="valueChange" render="@form" listener="#{bean.changeListener}" />
</h:selectOneMenu>
</h:form>

Java:

import javax.faces.event.AjaxBehaviorEvent;
import org.springframework.webflow.execution.Event;

public class Bean {
public void changeListener(AjaxBehaviorEvent event) {
// prepare webflow event
Event e = new Event(event.getSource(), "doit");
// propagate this event... ???
}
}

最佳答案

我最近遇到了类似的问题,并使用类似的监听器样式处理 primefaces/richfaces 事件。这是一个例子:

    public void changeListener(AjaxBehaviorEvent event) {  
RequestContext requestContext = RequestContextHolder.getRequestContext();
RequestControlContext rec = (RequestControlContext) requestContext;
//place variables you need in next flow phase here; flash,application,session scope
rec.getFlashScope().put("someVarIneedInNextFlow", varName);
rec.handleEvent(new Event(this, "flow transition name here, i.e. next-stage"));
return;
}

那应该过渡到您想要的任何流事件:)

关于jsf-2 - 如何对 h :selectOneMenu? 中的值更改执行转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4860142/

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