Vc colocou ele dentro de um <a4j:form> ??
se nao nao funfa msm.
C
carllacj
Igweb, valeu a força, mas nem isso funfou!!!
C
carllacj
Vou postar todo o meu xhtml
<?xmlversion="1.0"encoding="ISO-8859-1"?><!DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"xmlns:ui="http://java.sun.com/jsf/facelets"xmlns:h="http://java.sun.com/jsf/html"xmlns:a4j="http://richfaces.org/a4j"xmlns:rich="http://richfaces.org/rich"xmlns:f="http://java.sun.com/jsf/core"xmlns:c="http://java.sun.com/jstl/core"><head><linkrel="stylesheet"href="../css/master.css"type="text/css"/><styletype="text/css"></style></head><body><a4j:form><rich:panelstyle="background-color: #EDEDED;"><f:facetname="header"><h:outputTextvalue="Edição da Página"/></f:facet><h:panelGridcolumnClasses="coluna1,coluna2"columns="2"><h:outputTextvalue="Titulo da Página"/><h:inputTextvalue="#{municipioController.htmlTitulo}"/></h:panelGrid><rich:fileUploadfileUploadListener="#{municipioController.upload}"maxFilesQuantity="5"addControlLabel="Adicionar"clearAllControlLabel="Limpar tudo"clearControlLabel="limpar"stopEntryControlLabel="Parar"uploadControlLabel="Enviar"doneLabel="Arquivo enviado!"><f:facetname="label"><h:outputTextvalue="{_KB}KB from {KB}KB uploaded --- {mm}:{ss}"/></f:facet></rich:fileUpload><rich:editorid="details_id"theme="advanced"plugins="fullscreen"immediate="true"value="#{municipioController.htmlOut}"style="margin:0 auto;"configuration="confEditor"><!--<f:paramname="theme_advanced_buttons1"value="fullscreen,undo,redo,cleanup,|,formatselect,bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull,bullist,numlist,insertdate,inserttime,hr,outdent,indent,|,link,unlink"/><f:paramname="theme_advanced_buttons2"value=""/>--><f:paramname="theme_advanced_toolbar_location"value="top"/><f:paramname="theme_advanced_toolbar_align"value="left"/><f:paramname="width"value="95%"/><f:paramname="height"value="260"/></rich:editor><h:panelGridcolumns="2"><a4j:commandButtonstyle="width:65px;"styleClass="button"title="Salvar"id="btnsalvar"value="Salvar"action="#{municipioController.btnSalvar}"/><a4j:commandButtonstyle="width:65px"styleClass="button"title="Cancelar"id="btncancelar"value="Cancelar"action="#{municipioController.btnVoltarEdicao}"/></h:panelGrid></rich:panel></a4j:form></body></html>
C
carllacj
Alguém por favor!!!
L
lgweb
este codigo esta dentro de uma view ou subView tbm?
C
carllacj
uma subview…e ai alguma ajuda??
Guilherme_Gomes
Se você colocou o createTempFiles como false, não pode user o método item.getFile(), pois o arquivo ficou em memoria, não foi salvo. Para pegar o arquivo você teria que usar o item.getData() e criar o File dele, ou simplesmente colocar o createTempFiles como true.
Outra coisa:
Filearquivo=newFile(newDiretory); //Isso não está criando o diretório!if(!arquivo.exists())arquivo.mkdirs(); //Isso está criando!
C
carllacj
Guilherme até ai tudo bem, mas o fato é que não quer nem entrar no metodo, não quer nem imprimir o System.out.println("Entrou…);
que coloquei na primeira linha do codigo!!
Guilherme_Gomes
Percebi que você usa o MyFaces além do Richfaces. Eles tem um velho caso de conflito. Os dois precisam de um filtro para tratar os dados da requisição. O filtro que você declarar primeiro no web.xml é o que irá funcionar com upload.
Se você colocar o filtro do MyFaces primeiro, use o upload do MyFaces.
Se você colocar o filtro do Richfaces primeiro, use o upload do Richfaces.
Qualquer coisa, posta de novo.
C
carllacj
Guilherme nem isso ta funfando!!! Só falta isso pra entregar o projeto!!
<?xmlversion="1.0"encoding="ISO-8859-1"?><!DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"xmlns:ui="http://java.sun.com/jsf/facelets"xmlns:h="http://java.sun.com/jsf/html"xmlns:a4j="http://richfaces.org/a4j"xmlns:rich="http://richfaces.org/rich"xmlns:f="http://java.sun.com/jsf/core"xmlns:c="http://java.sun.com/jstl/core"><head><linkrel="stylesheet"href="../css/master.css"type="text/css"/><styletype="text/css"></style></head><body><a4j:form><rich:panelstyle="background-color: #EDEDED;"><f:facetname="header"><h:outputTextvalue="Edição da Página"/></f:facet><h:panelGridcolumnClasses="coluna1,coluna2"columns="2"><h:outputTextvalue="Titulo da Página"/><h:inputTextvalue="#{municipioController.htmlTitulo}"/></h:panelGrid><rich:fileUploadfileUploadListener="#{upload.upload}"maxFilesQuantity="5"addControlLabel="Adicionar"clearAllControlLabel="Limpar tudo"clearControlLabel="limpar"stopEntryControlLabel="Parar"uploadControlLabel="Enviar"doneLabel="Arquivo enviado!"><f:facetname="label"><h:outputTextvalue="{_KB}KB from {KB}KB uploaded --- {mm}:{ss}"/></f:facet></rich:fileUpload><rich:editorid="details_id"theme="advanced"plugins="fullscreen"immediate="true"value="#{municipioController.htmlOut}"style="margin:0 auto;"configuration="confEditor"><!--<f:paramname="theme_advanced_buttons1"value="fullscreen,undo,redo,cleanup,|,formatselect,bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull,bullist,numlist,insertdate,inserttime,hr,outdent,indent,|,link,unlink"/><f:paramname="theme_advanced_buttons2"value=""/>--><f:paramname="theme_advanced_toolbar_location"value="top"/><f:paramname="theme_advanced_toolbar_align"value="left"/><f:paramname="width"value="95%"/><f:paramname="height"value="260"/></rich:editor><h:panelGridcolumns="2"><a4j:commandButtonstyle="width:65px;"styleClass="button"title="Salvar"id="btnsalvar"value="Salvar"action="#{municipioController.btnSalvar}"/><a4j:commandButtonstyle="width:65px"styleClass="button"title="Cancelar"id="btncancelar"value="Cancelar"action="#{municipioController.btnVoltarEdicao}"/></h:panelGrid></rich:panel></a4j:form></body></html>
Guilherme_Gomes
A sua classe Upload implementa Serializable?
Aparece algum erro na saída?
C
carllacj
Não implementa serializable, e não dá erro algum!!!
C
carllacj
na mesma pagina tem o rich:editor que funciona normalmente!!
Aqui a classe Upload, ta cheia de linhas comentadas, e o metodo q tento chamar no xhtml é o upload.
packageidesp.sie.controller;importjava.io.File;importjavax.faces.context.ExternalContext;importjavax.faces.context.FacesContext;importjavax.servlet.ServletContext;importorg.richfaces.event.UploadEvent;importorg.richfaces.model.UploadItem;publicclassUpload{// private ArrayList<File> files = new ArrayList<File>();privateintuploadsAvailable=5;privatebooleanautoUpload=false;privatebooleanuseFlash=false;publicintgetSize(){/* if (getFiles().size()>0){ return getFiles().size(); }else { */return0;// }}publicUpload(){System.out.println("Entrou");}publicvoidupload(UploadEventevent){System.out.println("entrou uplod metodo");try{StringnewDiretory;ExternalContextexternalContext=FacesContext.getCurrentInstance().getExternalContext();ServletContextctx=(ServletContext)externalContext.getContext();newDiretory=ctx.getRealPath("download\\arquivos");System.out.println(newDiretory);UploadItemitem=event.getUploadItem();Filearquivo=newFile(newDiretory);arquivo=item.getFile();if(arquivo!=null){arquivo.renameTo(newFile(newDiretory+"/"+item.getFileName()));}}catch(Exceptionerro){}}/* public void paint(OutputStream stream, Object object) throws IOException { stream.write(getFiles().get((Integer)object).getData()); } */publicvoidlistener(UploadEventevent)throwsException{System.out.println("Entrou listener");UploadItemitem=event.getUploadItem();/* File file = new File(); file.setLength(item.getData().length); file.setName(item.getFileName()); file.setData(item.getData()); files.add(file); */uploadsAvailable--;}publicStringclearUploadData(){// files.clear();setUploadsAvailable(5);returnnull;}publiclonggetTimeStamp(){returnSystem.currentTimeMillis();}/* public ArrayList<File> getFiles() { return files; } public void setFiles(ArrayList<File> files) { this.files = files; }*/publicintgetUploadsAvailable(){returnuploadsAvailable;}publicvoidsetUploadsAvailable(intuploadsAvailable){this.uploadsAvailable=uploadsAvailable;}publicbooleanisAutoUpload(){returnautoUpload;}publicvoidsetAutoUpload(booleanautoUpload){this.autoUpload=autoUpload;}publicbooleanisUseFlash(){returnuseFlash;}publicvoidsetUseFlash(booleanuseFlash){this.useFlash=useFlash;}}
Guilherme_Gomes
O que estou pensando é, por você estar usando o javax.faces.STATE_SAVING_METHOD como client, poderia dar erro se seu bean não implementar serializable!
Se não for isso, é algo realmente estranho, tenta colocar o upload sozinho numa pagina, sem estar dentro de nenhum panelGrid ou qualquer outra coisa.
Já vi do upload do richfaces dar erro em diversas ocasiões quando aninhado em outros componentes!