llamando al método de frijol en el evento onClick de la imagen [duplicado]

Tengo una imagen y me gustaría llamar a un método que está almacenado en bean. estaba pensando en

<h:graphicImage value="DisplayImage?id=1&amp;stuff=photo&amp;mainID=main" 
 onclick="
          alert('clicked me 1');
          #{PersonalInformationDataBean.doSaveImage()};
          alert('clicked me 2');
         " styleClass="modal"/>

Yo estaba esperando #{PersonalInformationDataBean.doSaveImage()}; para trabajar, sin embargo esto no está funcionando. Solo me estoy poniendo alerta como clicked me 1

¿Alguna idea de cómo hacer esto?

actualización 1

Olvidar actualizar que estoy haciendo esto en Página JSP.

preguntado el 28 de julio de 12 a las 13:07

2 Respuestas

que tal algo como esto

<h:graphicImage value="DisplayImage?id=1&amp;stuff=photo&amp;mainID=main" 
 onclick="$('#myFormID\\:myButtonID').click();" styleClass="modal"/>
<h:commandButton id="myButtonID" action="#{PersonalInformationDataBean.doSaveImage()}" style="display:none">
    <f:ajax/>
</h:commandButton>

puede que tengas que jugar un poco con el selector jquery $('#myFormID\\:myButtonID') or $('#myButtonID')

OR

<h:commandLink>
    <f:ajax event="action" listener="#{PersonalInformationDataBean.doSaveImage()}"/>
    <h:graphicImage value="DisplayImage?id=1&amp;stuff=photo&amp;mainID=main" 
    styleClass="modal"/>
</h:commandLink>

Respondido 28 Jul 12, 20:07

Gracias Daniel... Le echaré un vistazo y te aviso... - Fahim Parkar

olvide actualizar que estoy haciendo esto en la página JSP y f:ajax no funciona allí ... - Fahim Parkar

no hay JSP en JSF2... si está utilizando JSF2, pase a las facetas... lea al respecto JSP está obsoleto en JSF2... - Daniel

Estoy utilizando <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> en la página JSP. soy capaz de usar Fahim Parkar

Debe tener una <h:head> en lugar de <head> - Daniel

Estoy asumiendo que `#{PersonalInformationDataBean.doSaveImage()}; es una función que ha definido en su servidor y no es un método de objeto de JavaScript. Corrígeme si estoy equivocado.

El problema aquí es que está intentando acceder a los métodos del lado del servidor desde el javascript del lado del cliente. Dado que HTTP es un protocolo sin estado, necesita alguna tecnología intermedia para acceder a esos métodos.

DWR es una poderosa herramienta que le permitirá lograr exactamente este. Verificar http://directwebremoting.org/dwr/documentation/index.html .He usado esto innumerables veces y nunca falla.

Respondido 28 Jul 12, 15:07

Si bien tiene razón sobre la causa concreta de la falla de OP, no estoy de acuerdo con el uso de DWR para esto. JSF tiene sus propias etiquetas e instalaciones para lograr el requisito funcional deseado. - BalusC

gracias ... cualquier enlace desde donde pueda obtener el código (para tener una idea de cómo funciona) - Fahim Parkar

@BalusC: ¿Podría decirme lo mismo...? - Fahim Parkar

@BalusC: ¿Puede dar más detalles sobre eso? Incluso tengo curiosidad por saber la solución que tienes en mente. ¿Estás hablando de llamar a las funciones del controlador JSF? - afrin216

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.