您好我正在使用Jdeveloper与oracle-adf合作。我试图使用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。
有人能提供一些见解吗?
谢谢:)
答案 0 :(得分:1)
通常,valueChangeListener将指向托管bean。尝试选择inputText,然后在IDE中打开Property Inspector,然后使用ValueChangeListener右侧的向下箭头。选择编辑,您将看到一个对话框,用于在现有bean上创建托管bean或指向。使用该对话框创建新方法。这应该将inputText连接到bean中的方法。
答案 1 :(得分:0)
请记住,只有在提交页面时,才会通过bean方法(按照32U的正确答案)处理ValueChangeListener。如果要在输入文本字段失去焦点时处理更改,请设置autoSubmit = true。