在onClick事件上调用bean方法

时间:2012-07-28 12:46:49

标签: html image jsp jsf-2 onclick

我有图片,想调用存储在bean中的方法。我在考虑

<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"/>

我期待#{PersonalInformationDataBean.doSaveImage()};能够正常工作,但这不起作用。我只是clicked me 1

警惕

知道如何完成这项工作吗?

更新1

忘记更新我在 JSP页面中执行此操作。

2 个答案:

答案 0 :(得分:1)

怎么回事这个

<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>

您可能需要使用jquery选择器$('#myFormID\\:myButtonID')$('#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>

答案 1 :(得分:0)

我假设`#{PersonalInformationDataBean.doSaveImage()};是您在服务器中定义的函数,它不是javascript对象方法。如果我错了,请纠正我。

这里的问题是你试图从客户端javascript访问服务器端方法。由于HTTP是无状态协议,因此您需要一些中间技术来访问这些方法。

DWR是一个功能强大的工具,可以让您完全 。看看http://directwebremoting.org/dwr/documentation/index.html。我已经无数次地使用它,它永远不会失败。