Hola hasta ahora sigo aprendiendo de faces y me encontrado con el
siguiente inconveniente, tengo un servlet el cual deseo que sea
llamado a partir de un método en un bean.
Supongamos que vamos a mandar un libro y el servlet en cuestion lo
imprime en la consola del servidor.
Esto por ejemplo en struts lo hacia de la siguiente manera.
En la accion que se llama MyAccion:
Struts:
public ActionForward imprimirLibroconsola(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
...
….
Armo un libro
request.setAttribute("libro", libro);
request.setAttribute("nombreArchivo", "MyArchivo");
return mapping.findForward("impresion");
}
En faces: en el método del bean hice lo mismo excepto que el método
del bean no tiene parámetros entonces obtengo el request asi
request=(cast)FacesContext.getCurrentInstance().getExternalContext().getRequest(\
);
y pues retorno success para el facesconf
En el web.xml defino mi servlet asi:
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>dom.rut.MyServlet</servlet-class>
</servlet>
En faces Lo hice igual
Ahora para mandar al servlet
Struts : recive el struts-conf
<action
path="/MyAccion "
scope="request"
parameter="method"
type=" dom.rut.rut.rut.action.MyAccion " >
<forward name="impresion" path="/servlet/MyServlet " />
</action>
Faces:
<navigation-rule>
<from-view-id>/jsp/MyPagina.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
Y pues hasta aquí llego porque no se como mandarlo a un servlet no
encuentro nada como el forward ya que siempre lo que se hace en los
case es mandar a otro jsp con <to-view-id> pero eso no sirve para servlets
Es posible que este mal enfocado lo que este haciendo.
No se si es muy obvio lo que estoy preguntando, pero en las búsquedas
que he hecho no puntualizan en esto.
Les agradezco la colaboración de antemano.