【问题标题】:calling bean method on image onClick event [duplicate]在图像onClick事件上调用bean方法[重复]
【发布时间】:2012-07-28 12:46:49
【问题描述】:

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

【问题讨论】:

    标签: html image jsp jsf-2 onclick


    【解决方案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>
    

    【讨论】:

    • 谢谢丹尼尔...我会看看并告诉你...
    • 忘记更新我在 JSP 页面中执行此操作,而 f:ajax 在那里不起作用...
    • JSF2 中没有 JSP...如果您使用的是 JSF2,请转到 facelets...阅读相关信息 JSP 在 JSF2 中已过时...
    • 我在 JSP 页面中使用&lt;%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%&gt;。我可以在 jsf 页面中使用
    • 您必须使用&lt;h:head&gt; 而不是&lt;head&gt;
    【解决方案2】:

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

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

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

    【讨论】:

    • 虽然您对 OP 失败的具体原因是正确的,但我不同意为此使用 DWR。 JSF 有自己的标签和工具来实现所需的功能需求。
    • 谢谢...任何我可以从中获取代码的链接(了解它是如何工作的)
    • @BalusC : 你能告诉我同样的...
    • @BalusC:你能详细说明一下吗?即使我很想知道您想到的解决方案。你说的是调用 JSF Handler 函数吗?
    猜你喜欢
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多