0

我有图像,想调用一个存储在 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 Page中执行此操作。

4

2 回答 2

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

或者

<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>
于 2012-07-28T18:03:19.767 回答
0

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

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

DWR 是一个强大的工具,可以让您实现这一目标。查看http://directwebremoting.org/dwr/documentation/index.html。我已经用过无数次了,它从来没有失败过。

于 2012-07-28T14:25:09.910 回答