【问题标题】:<f:ajax> multiple call of Java method - how to do it only once?<f:ajax> Java 方法的多次调用 - 如何只调用一次?
【发布时间】:2011-09-06 19:55:57
【问题描述】:

我正在使用 ajax 调用 java 方法bean.findDetail()。如果该方法在数据库中找到 detailItem 对象,则呈现 inputTexts 的其余部分。

<h:inputText id="worker" value="#{bean.item.id}">
 <f:ajax event="change" render="name" listener="#{bean.findDetail}"/>
 <f:ajax event="change" render="surname"/>
 <f:ajax event="change" render="age"/>
</h:inputText>

<h:panelGroup>
 <h:inputText id="name" value="#{bean.detailItem.name}" disabled="true"/>
 <h:inputText id="surname" value="#{bean.detailItem.surname}" disabled="true"/>
 <h:inputText id="age" value="#{bean.detailItem.age}" disabled="true"/>
</h:panelGroup>

一切正常,但是方法被调用了 3 次!

有没有办法一次渲染所有三个 inputText?

【问题讨论】:

    标签: java ajax jsf jsf-2


    【解决方案1】:

    是的,只需在渲染元素中放置空格分隔值

    <h:inputText id="worker" value="#{bean.item.id}">
     <f:ajax event="change" render="name surname age" listener="#{bean.findDetail}"/>
    </h:inputText>
    

    【讨论】:

    • 糟糕,谢谢!!我只用逗号分隔(render="name, surname, age") :)
    猜你喜欢
    • 1970-01-01
    • 2019-09-24
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 2023-03-16
    相关资源
    最近更新 更多