首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于valueChangeListener的Ajax

用于valueChangeListener的Ajax
EN

Stack Overflow用户
提问于 2013-02-07 11:36:52
回答 4查看 23.4K关注 0票数 11

我使用p:ajax侦听器来处理值更改事件(因为valueChangeListener是在表单提交上启动的):

代码语言:javascript
复制
<p:ajax event="change" listener="#{bean.onNameChanged}"/>

处理方法:

代码语言:javascript
复制
public void onNameChanged(final AjaxBehaviorEvent event)

问题是,我在AjaxBehaviorEvent及其类层次结构中找不到读取输入的旧值的位置。我在谷歌里也找不到线索,如何得到旧的价值.

如何访问p:ajax onChange事件中的旧值?

EN

回答 4

Stack Overflow用户

发布于 2013-02-08 10:59:21

ValueChangeListener应该这样工作:

意见:

代码语言:javascript
复制
<h:form>
  <h:inputText value="#{sessionBean.hello}" 
               valueChangeListener="#{sessionBean.valueChangeListener}">
    <p:ajax/>
  </h:inputText>
</h:form>

豆子:

代码语言:javascript
复制
public void valueChangeListener(ValueChangeEvent e) {
  System.out.println("valueChangeListener invoked:" 
                      + " OLD: " + e.getOldValue() 
                      + " NEW: " + e.getNewValue());
}

如果我将文本字段从"hello“更改为”world“,上述代码将打印:

调用的valueChangeListener : OLD: hello : world

票数 7
EN

Stack Overflow用户

发布于 2013-02-08 05:18:13

您可以尝试以下几种方法:

  1. 在bean中实现值更改事件 公共无效processValueChange(ValueChangeEvent e){ //foo the bar }
  2. 在选择组件上定义一个valueChangeListener
票数 3
EN

Stack Overflow用户

发布于 2014-12-31 09:39:20

你可以用这个:

代码语言:javascript
复制
public void onNameChanged(AjaxBehaviorEvent event)
 {
    String myVal = (String) ((UIOutput) event.getSource()).getValue();
    System.out.println("myVal: " + myVal);
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14750185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档