oracle adf Valuechangelistener空指针异常

时间:2014-10-30 15:36:57

标签: java oracle-adf

您好我正在使用Jdeveloper与合作。我试图使用valuechangelister

    <af:inputText label="#{bindings.CurrentOwner.hints.label}" id="it9"
                              value="#{bindings.CurrentOwner.inputValue}"
                              required="#{bindings.CurrentOwner.hints.mandatory}"
                              columns="#{bindings.CurrentOwner.hints.displayWidth}"
                              maximumLength="#{bindings.CurrentOwner.hints.precision}"
                              valueChangeListener="#{bindings.createNewRow1.execute}">     
                    <f:validator binding="#{bindings.CurrentOwner.validator}"/>
                </af:inputText>

但是当我尝试读取它时,它会在对象e上返回Null指针异常。

    public void createNewRow(ValueChangeEvent e){        
    //get he EmployeeViewImpl class instance
          AssetHistoryVOImpl vo=this.getAssetHistory1();
        AssetsUserVOImpl assets=this.getAssetsUser1();  
          System.out.println("one");
     // Create new row to insert data
          oracle.jbo.Row r_history=vo.createRow();;
          oracle.jbo.Row r_assets=assets.getCurrentRow();
          System.out.println("two");
    String newValue;
    newValue = e.getNewValue().toString();// null pointer exception happens here
          System.out.println("three");

    String test = (String)r_assets.getAttribute("CurrentOwner");
          System.out.println("this is test "+newValue);

我导入了javax.faces.event.ValueChangeEvent。我在网上看了很多教程,这基本上就是他们所做的,但由于某些原因,参数对象是NULL。

有人能提供一些见解吗?

谢谢:)

2 个答案:

答案 0 :(得分:1)

通常,valueChangeListener将指向托管bean。尝试选择inputText,然后在IDE中打开Property Inspector,然后使用ValueChangeListener右侧的向下箭头。选择编辑,您将看到一个对话框,用于在现有bean上创建托管bean或指向。使用该对话框创建新方法。这应该将inputText连接到bean中的方法。

答案 1 :(得分:0)

请记住,只有在提交页面时,才会通过bean方法(按照32U的正确答案)处理ValueChangeListener。如果要在输入文本字段失去焦点时处理更改,请设置autoSubmit = true。