2014-10-30 66 views
0

嗨,我正在使用Jdeveloper的。我試圖用valuechangelisteroracle adf Valuechangelistener空指針異常

<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返回空指針異常。

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。

任何人都可以提供一些見解嗎?

謝謝:)

回答

1

通常情況下,valueChangeListener將指向託管bean。嘗試選擇inputText,然後在IDE中打開Property Inspector,然後使用ValueChangeListener右側的向下箭頭。選擇編輯,你會看到一個對話框來創建一個託管bean或指向現有的bean。使用對話框來創建一個新的方法。這應該將你的inputText連接到bean中的方法。

0

請記住,ValueChangeListener只會在頁面提交時通過那裏的bean方法(每32U的正確答案)進行處理。如果您希望在輸入文本字段丟失焦點時處理更改,請設置autoSubmit = true。