[Resolvido]Importação de arquivo (primefaces)

Ae galera… bem comecei a usar JSF + primefaces …

Estou querendo desenvolver na minha aplicação um componente que importe um arquivo XML, pois vou precisar ler este arquivo (Atualmente faço isso de forma manual importando o arquivo no eclipse)…

Alguem aih tem algo pronto??

Dei uma olhada no site do primefaces… encontrei um exemplo pra importar arquivo, segue abaixo:

<p:layoutUnit position="center"> <p:fileUpload fileUploadListener="#{fileUploadController.handleFileUpload}" allowTypes="*.jpg;*.png;*.gif;" description="Images"/> </p:layoutUnit>


package bean;

import java.util.logging.Logger;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

import org.primefaces.event.FileUploadEvent;
import org.slf4j.LoggerFactory;


@ManagedBean
public class FileUploadController {  

	private Logger logger = (Logger) LoggerFactory.getLogger(FileUploadController.class);  

	public void handleFileUpload(FileUploadEvent event) {  
		logger.info("Uploaded: {}");  

		FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded.");  
		FacesContext.getCurrentInstance().addMessage(null, msg);  
	}  
}  

Po… alguem aih que ja tenha passado por esse problema, se tiver algo pronto seria bom compartilhar :wink:

"j_idt15 needs to be enclosed in a form"
O componente precisa estar dentro de um form…

acabei verificando isso… coloquei dentro do form e deu certo…

Agora aparece o botao do browser… e link de upload…

Mas pelo que vi preciso fazer alteração na classe java…

O codigo original do site ta assim:

[code]public class FileUploadController {

private Logger logger = LoggerFactory.getLogger(FileUploadController.class);  

public void handleFileUpload(FileUploadEvent event) {  
    logger.info("Uploaded: {}", event.getFile().getFileName());  

    FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded.");  
    FacesContext.getCurrentInstance().addMessage(null, msg);  
}  

} [/code]

Só que comecou a dar erro, daih fiz alteração:

[code]@ManagedBean
public class FileUploadController {

private Logger logger = (Logger) LoggerFactory.getLogger(FileUploadController.class);  

public void handleFileUpload(FileUploadEvent event) {  
	logger.info("Uploaded: {}");  

	FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded.");  
	FacesContext.getCurrentInstance().addMessage(null, msg);  
}  

} [/code]

Atualmente faço o seguinte, com o arquivo importado no eclipse:

Metodo

	public Pessoa lerPessoa(String arquivoXML) throws Exception, ParserConfigurationException, SAXException, IOException{
			//fazer o parse do arquivo e criar o documento XML
			DocumentBuilderFactory documentoBF = DocumentBuilderFactory.newInstance();
			DocumentBuilder db = documentoBF.newDocumentBuilder();
			Document doc = db.parse(arquivoXML);
         ......

Invocando método:

Pessoa pessoa = parser.lerPessoa("Arquivo.xml");

Então, penso que será necessário salvar no banco e dps recuperar este arquivo para ser lido… passar o xml como parâmetro no método acima…

Alguem aih me da umas dicas…

Ainda bem que era só isso, pois se fosse mais a fundo eu já não poderia ajudar… hehehehe

alguem aih pra responder a dúvida acima?

Achei um site com exemplo…

http://quebrandoparadigmas.com/?p=168

vou tentar seguir esse tutorial…