Estou com um problema no meu projeto. Se trata de um projeto jsf, em que eu tenho o xml e preciso carrega-lo para depois passar para objetos do componente Tree2 do myFaces.
Aqui está a minha pagina inicio.jsp, em que eu pego o caminho do meu xml.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Cp1252"/>
<title>Login</title>
</head>
<body>
<f:view>
<h:form>Digite o caminho do xml:
<h:inputText value="#{LibraryTreeHandler.nomeXml}"></h:inputText>
<br><br>
<h:commandButton value="Visualizar" action="#{LibraryTreeHandler.visualizar}"></h:commandButton>
</h:form>
</f:view>
</body>
</html>
Tenho a classe com o metodo visualizar, que chama uma outra pagina.
public class LibraryHandler {
private String nome;
private String tipo;
private String nomeXml;
private String authorBio;
private LibraryTreeModel treeModel;
public LibraryHandler(){
int i;
treeModel = new LibraryTreeModel();
}
public void setAuthorBio(String authorBio){
this.authorBio=authorBio;
}
public String getAuthorBio(){
return authorBio;
}
public LibraryTreeModel getTreeModel(){
return treeModel;
}
public String getNome(){
return nome;
}
public String getTipo(){
return tipo;
}
public void setNome(String paramNome){
nome = paramNome;
}
public void setTipo(String paramTipo){
tipo = paramTipo;
}
public String getNomeXml(){
return this.nomeXml;
}
public void setNomeXml(String paramNomeXml){
this.nomeXml = paramNomeXml;
}
public String visualizar(){
File hbXmlFile = new File("nomeXml");
LibraryHandler hBuster = new LibraryHandler();
hBuster.buster(hbXmlFile);
String resultado = "false";
if(nomeXml!=null){
resultado = "sucesso";
System.out.println("\n"+nomeXml);
System.out.println("\n"+hbXmlFile);
}
System.out.println("\n"+hBuster);
System.out.println("\n"+resultado);
return resultado;
}
public void buster (File f) {
CatalogoSistemaDocument pod = null;
try{
pod = CatalogoSistemaDocument.Factory.parse(f);
}catch(XmlException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
O problema é que quando eu executo esta classe aparece a seguinte mensagem:
javax.servlet.ServletException: Cannot get value for expression ‘#{LibraryTreeHandler.nomeXml}’
E quando eu executo sem o método “buster” (que faz o parse) dá tudo certo (as duas paginas abrem).
Alguém entendeu?? Alguém pode me ajudar? É urgentíssimo!!
Obrigada.