【问题标题】:How to submit p:selectOneMenu value on ajax change event?如何在 ajax 更改事件上提交 p:selectOneMenu 值?
【发布时间】:2016-11-18 16:10:00
【问题描述】:

这是我的代码:

<h:form>
    <p:selectOneMenu id="handlerSelect" value="#{caseController.case.handler}" style="width:182px">
        <f:selectItems value="#{handlerController.findAllHandlers()}"
            var="handlerSelect" itemLabel="#{handlerSelect.name}"
            itemValue="#{handlerSelect}" />
        <p:ajax event="change"listener="#{caseController.changeHandler(handlerSelect)}"/>
    </p:selectOneMenu>
</h:form>

当我更改值并触发 ajax 事件并调用 changeHandler 方法时,changeHandler 方法将 null 作为参数。它应该是选定的处理人员。为什么是空的?

更新:我忘记将该组件放在 h:form 标记中......但现在我添加了这些,我收到一个转换错误:Conversion Error setting value '(Handler:2)' for 'null Converter'.

【问题讨论】:

标签: ajax jsf primefaces selectonemenu


【解决方案1】:

好的,主要原因是组件不在 h:form-tags 中,其次我必须使用omnifaces 转换器来修复转换错误。所以最后的工作代码是这样的:

    <h:form>
        <p:selectOneMenu id="handlerSelect" value="#{caseController.case.handler}" 
            converter="omnifaces.SelectItemsIndexConverter" style="width:182px">
            <f:selectItems value="#{handlerController.findAllHandlers()}"
                var="handlerSelect" itemLabel="#{handlerSelect.name}"
                itemValue="#{handlerSelect}" />
            <p:ajax event="change"listener="#{caseController.changeHandler(handlerSelect)}"/>
        </p:selectOneMenu>
    </h:form>

【讨论】:

    猜你喜欢
    • 2016-07-19
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-02
    相关资源
    最近更新 更多