我正在尝试加载一个文件,但只有最后一个commanButton可以正常工作,如果它在更改中完美无缺,则第一个不能正常工作。
列表的第一个commanbutton不起作用,最后一个如果,这里是代码:
<h:form enctype="multipart/form-data" id="frm-main">
<p:growl id="messages" showDetail="true"/>
<p:dataTable var="task" value="#{tareaBean.tareas}">
<p:column headerText="Nombre">
<h:outputText value="#{task.nombre}"/>
</p:column>
<p:column headerText="Descripcion">
<h:outputText value="#{task.cuerpo}"/>
</p:column>
<p:column headerText="Fecha Inicio">
<h:outputText value="#{task.fechaInicio}"/>
</p:column>
<p:column headerText="Fecha Final">
<h:outputText value="#{task.fechaFinal}"/>
</p:column>
<p:column headerText="Subir archivo">
<p:panel>
<p:fileUpload value="#{tareaBean.file}" mode="simple" skinSimple="true" update = "messages" rendered="true" />
</p:panel>
<h:commandButton value="Subir" actionListener="#{tareaBean.cargar()}"/>
<p:growl id="growl" showDetail="true"/>
</p:column>
</p:dataTable>
</h:form>
这里的功能:
public void cargar(){
String extValidate;
if(getFile()!=null){
String ext = getFile().getFileName();
if(ext!=null){
extValidate = ext.substring(ext.indexOf(".")+1);
}
else{extValidate = "null";}
if(extValidate.equals("pdf")){
try{
TransferFile(getFile().getFileName(),getFile().getInputstream());
}catch(IOException ex){
Logger.getLogger(FileUploadControl.class.getName()).log(Level.SEVERE,null,ex);
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null,new FacesMessage("Error","Error subiendo el archivo"));
}
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage("EXITO",getFile().getFileName()+" cargado exitosamente, tipo de contenido: "+getFile().getContentType()+" tamaño :"+getFile().getSize()));
}
else{
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null,new FacesMessage("Error_ext","Solo se pemite archivos con extension .pdf"));
}
}
else{
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null,new FacesMessage("Error","Seleccione una fila"));
}
}