我们使用支持bean开发了表单和字段。使用的上载将不起作用,加载页面将停止
之后
出于某种原因,afterrenderresponse:
<xp:fileUpload value="#{field.fileUpload}" id="fileUpload1">
<xp:this.attrs>
<xp:attr name="alias" value="#{form.name}.#{field.fieldName}"></xp:attr>
</xp:this.attrs>
</xp:fileUpload>
bean中的代码:
private UploadedFile uploadedFile= null;
public FieldData(Field field) {
this.field = field;
this.value = field.getFieldValue();
System.err.print("new FieldData: " + field.getFieldName());
}
public UploadedFile getFileUpload() {
System.err.print("getFileUpload");
return uploadedFile;
}
public void setFileUpload(UploadedFile to) {
System.err.print("setFileUpload " + to);
this.uploadedFile = to;
}
我不断得到的错误是:
java.lang.NullPointerException
at com.ibm.xsp.renderkit.html_extended.FileuploadRendererEx.encodeEnd(FileuploadRendererEx.java:371)
at com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeEnd(ReadOnlyAdapterRenderer.java:180)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:1005)
at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:857)
还有更多的台词。
除此之外,其他类型的字段表现良好。例如,文本字段定义为:
<xp:inputText type="text" value="#{field.fieldValue}" id="inputText1">
<xp:this.attrs>
<xp:attr name="required" value="true" rendered="#{javascript:field.isRequired()}"></xp:attr>
<xp:attr name="alias" value="#{form.name}.#{field.fieldName}"></xp:attr>
</xp:this.attrs>
</xp:inputText>
我有bean表单和字段,有必要的getter和setter函数。
错误发生在xpages中的某个地方,而不是我的代码中。如果我把上传控件注释掉,其他的都可以。有人能解释一下为什么我总是得到空指针异常吗?谢谢!啊!
编辑
添加了一些澄清,特别是错误发生在afterrenderresponse步骤之后。我打印每个自定义控件中所有事件的简单跟踪,并且无论是否使用上载控件,跟踪都没有区别,它们是相同的,包括最后一个afterrenderresponse事件。