Java Richface:a4j:mediaOutput,数据为';空';
当我试图显示我上传的图像时,我得到了空指针 以下是我的例子: 错误:javax.el.ELException:…[path]。。。createContent=“#{imageBean.paint}”:java.lang.NullPointerException 使用的源代码: ImageBean.javaJava Richface:a4j:mediaOutput,数据为';空';,java,file-upload,richfaces,output,Java,File Upload,Richfaces,Output,当我试图显示我上传的图像时,我得到了空指针 以下是我的例子: 错误:javax.el.ELException:…[path]。。。createContent=“#{imageBean.paint}”:java.lang.NullPointerException 使用的源代码: ImageBean.java @ManagedBean @SessionScoped public class ImageBean implements Serializable{ private ImageData
@ManagedBean
@SessionScoped
public class ImageBean implements Serializable{
private ImageData imageData= new ImageData();
public void listener(FileUploadEvent event) throws Exception {
UploadedFile item = event.getUploadedFile();
imageData = new ImageData();
imageData.setName(item.getName());
imageData.setData(item.getData());
}
public void paint(OutputStream stream, Object object) throws IOException {
stream.write(getFile().getData());
stream.close();
}
// getters and setters for file
上传图像.xhtml
<h:form>
<h:panelGrid columns="2" columnClasses="top,top">
<rich:fileUpload fileUploadListener="#{imageBean.listener}" id="upload" acceptedTypes="jpg, gif, png, bmp"
ontyperejected="alert('Only JPG, GIF, PNG and BMP files are accepted');" maxFilesQuantity="1">
<a4j:ajax event="uploadcomplete" execute="@none" render="info" />
</rich:fileUpload>
<h:panelGroup id="info" layout="block">
<rich:panel bodyClass="info">
<f:facet name="header">
<h:outputText value="Uploaded Files Info" />
</f:facet>
<h:outputText value="Geen foto beschikbaar" rendered="#{imageBean.size==0}" />
<a4j:mediaOutput element="img" mimeType="image/jpeg" createContent="#{imageBean.paint}"
value="#{imageBean.file.name}" style="width:100px; height:100px;" cacheable="false">
</a4j:mediaOutput>
<h:panelGrid columns="2">
<h:outputText value="File Name:" />
<h:outputText value="#{imageBean.file.name}" />
</h:panelGrid>
</rich:panel>
<br />
</h:panelGroup>
</h:panelGrid>
</h:form>
根据我的调试器:
imageDate在上传侦听器()中获取数据
但在绘图()中为空
我的想法是,我应该把我的范围扩大。
因此,我将其设置为@SessionScoped
Web.xml:
<context-param>
<param-name>createTempFiles</param-name>
<param-value>false</param-value>
</context-param>
创建临时文件
假的
我试过真假
使用Richfaces:4.3.2在未上载任何文件的情况下尝试渲染图像。
需要有条件地呈现。我想我没有正确理解您的意思。据我所知,我会在上载时触发渲染,但第一次渲染是在页面加载时发生的,当时没有图像可绘制。是的,可能我应该提到它,但在屏幕加载时以及上载文件时,我会得到这个空指针。我想通过绘制默认图像来“修复”第一个空指针,我只是还没有编写代码,因为我无法让上传部分工作。