【问题标题】:ValueChangeEvent not firing when values are returned返回值时不触发 ValueChangeEvent
【发布时间】:2023-03-30 06:06:01
【问题描述】:

在我的 jsf 页面中,我有一个 inputtext 字段和一个隐藏字段。我有一个编辑按钮,单击编辑按钮后会出现一个弹出屏幕,我选择一个值,然后选择的值返回到我的隐藏字段。

我在隐藏字段中添加了一个 valueChangeListener,并在我的 bean 中添加了以下代码。

public void processChange(ValueChangeEvent event){        
    try  {           
        logger.info("event new value "+event.getNewValue().toString());

    } catch (Exception ex)  {                        
    } 

但是,每次我使用编辑弹出窗口更改值并将值返回到我的隐藏字段时,我猜 valueChangeListener 都不会触发。

知道为什么 valueChangeListener 没有触发吗?我的页面范围是会话并使用 JSF 1.1。

这种方法背后的想法是重新查询并根据弹出窗口中的值,我想刷新 JSF 页面中的数据。

【问题讨论】:

    标签: java jsf valuechangelistener


    【解决方案1】:

    你不应该一开始就捕捉到最超类的异常,尤其是没有记录任何东西。也许您来自 event.getNewValue() 的对象为空,然后您会收到 NullPointerException 并且您不会被注意到。

    使用类似的东西:

    public void processChange(ValueChangeEvent event){        
    try  {           
        logger.info("event new value "+event.getNewValue().toString());
    
    } catch (NullPointerException ex)  { 
         logger.error("object is null: "+ex.getMessage());              
    } catch (Exception ex)  { 
         logger.error(ex);              
    } 
    

    http://download.oracle.com/javase/tutorial/essential/exceptions/index.html

    【讨论】:

    • -@timaschew 我像你提到的那样更改了异常部分,但我仍然无法在我的 bean 中看到更改后的值。我猜 valueChangeListener 没有触发
    • @BalusC 你能提供一些见解吗?
    • -@timaschew 我猜 JSF 1.1 中 inputText 组件没有 PropertyChangeListener。
    • 嗯好吧,我对 JSF 不太了解,尝试 google 一些东西ValueChangeEvent+JSF
    【解决方案2】:

    您必须提交表单。 在标签中添加一个 onchage 属性,该属性调用提交表单的 javascript。 在表单提交之前,不会调用值更改事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-21
      • 1970-01-01
      • 1970-01-01
      • 2020-09-26
      • 2013-07-02
      • 2022-01-11
      • 1970-01-01
      • 2019-12-13
      相关资源
      最近更新 更多