JSF - Ayuda JSF. Problema con commandLink-actionlistener

 
Vista:

Ayuda JSF. Problema con commandLink-actionlistener

Publicado por felix (1 intervención) el 05/04/2010 13:36:43
Muy buenas:
Tengo una tabla en jsf, que me devuelve unos datos.
Estos son un nombre del fichero con la ruta donde se encuentra, la fecha de creación del fichero y una breve descripción.
Ahora lo que quiero hacer es que cuando haga click sobre el nombre del fichero, llame a un método para que me abra dicho fichero que puede ser o bien txt ,zip, pdf, html... Y que me lo abra en una ventana distinta previo mensaje si lo que quieres es guardar o abrir dicho fichero.
Pues bien, me da un error la consola del eclipse de método no encontrado.

La parte del código donde llamo al método en el jsf es el siguiente:
(Los datos me los recupera correctamente)
<rich:column>

<h:commandLink id="file" actionListener="#{consultaBean.OpenFile}" value="#{d.fichero}">
<f:param name="fichero" value="#{d.ruta}"/>
</h:commandLink>
</rich:column>

Y el método es el siguiente:

public void OpenFile(final ActionListener ae) throws FileNotFoundException {
// final HtmlCommandLink som = (HtmlCommandLink)
// FacesContext.getCurrentInstance().getViewRoot().findComponent("file");
final String filename = "C:/desarrollo/workspace/CNE-Portal/web/Datos/Exportaciones/Consulta_prueba2.txt";
final FileInputStream is = new FileInputStream(filename);
final String filenameabrir = "ww";// p_actionevent.paramString();
// filename = som.getValue().toString();

try {
final HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
response.setContentType("text/html");
response.addHeader("Content-disposition", "attachment=" + filename);
final OutputStream os = response.getOutputStream();
final byte[] buffer = new byte[1024];
int read = is.read(buffer);
while (read >= 0) {
if (read > 0) {
os.write(buffer, 0, read);
}
read = is.read(buffer);
}
is.close();
os.close();
FacesContext.getCurrentInstance().responseComplete();

} catch (final Exception e) {
try {
e.printStackTrace();
is.close();
} catch (final Exception ex) {
ex.printStackTrace();
}

}


}

He puesto un punto de ruptura en este método pero no llega. Ahora el código no está perfecto pues es una prueba para que me abra un fichero, pero es que ni si quiera me llega al método al hacer click, me da un error de método no hallado.

¿Alguien sabe que puede fallar?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda JSF. Problema con commandLink-actionliste

Publicado por Pilar (1 intervención) el 13/05/2010 10:59:32
Hombre, no soy experta, pero te diría que el argumento que hay que pasarle al método no es un ActionListener, sino un ActionEvent...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar