【问题标题】:JSF - Calling bean method when clicking <a> elementJSF - 单击 <a> 元素时调用 bean 方法
【发布时间】:2012-07-20 02:53:57
【问题描述】:

所以我有一个锚元素,它的 href 属性是从 bean 动态设置的。我正在使用锚点,因为它正在与 fancybox javascript 交互。我需要做的是在单击锚点时调用 bean 中的方法,以便 href 再次更新。上面有一个文本框也绑定到 bean。需要做的是从文本框中获取文本,并将其解析为锚点 href 的查询字符串。

我正在尝试找出实现这种情况的最佳方法(如果可能的话)。我可以使用 javascript(或 Ajax)来调用 updateHref() 方法吗?

文本框和锚元素(需要更新的是ModelBean.ending):

<h:inputTextarea value="#{ModelBean.tweet}" class="textarea.hs-input #{ModelBean.tweetClass}" style="width:200px;" >
                        <f:facet name="label">
                            Tweet
                        </f:facet>
                    </h:inputTextarea>

                </td>
            </tr>
            <tr>
                <td>
                    <h:commandButton value="Analyze Tweet" class="hs-button orange" action="#{ModelBean.tweetAnalysis()}" />
                </td>
                <td>
                    <a href="https://app.hubspot.com/social/#{ModelBean.hubID}/publishing/compose_bookmarklet?body=#{ModelBean.ending}" class="hs-button primary fancybox-iframe" data-fancybox-type="iframe"  >
                        Tweet it!
                    </a>
                </td>
            </tr>

这是需要调用的 java 代码:

ending = URLEncoder.encode(tweet, "UTF-8");
ending = ending.replaceAll("\\+", "%20");

如果您认为代码的任何其他部分有用,请告诉我!并提前感谢您的任何建议!

【问题讨论】:

    标签: java javascript jsf fancybox


    【解决方案1】:

    如果您使用 JSF 2.0,f:ajax 标签可能会解决您的问题。这是 f:ajax 标签的示例用法,

        <h:commandLink value="#{..}">
            <f:ajax execute="name" render="output" />
        </h:commandLink>
        <h:inputTextarea id="output" value="#{..}" />
    

    execute=”name” – 表示ID为“name”的表单组件将被发送到服务器进行处理。对于多个组件,只需将其与中间的空格分开,例如 execute=”name anotherId anotherxxId”。在这种情况下,它会提交文本框的值。

    render=”output” – Ajax 请求后,它会刷新 id 为“output”的组件。在这种情况下,Ajax 请求完成后,会刷新 h:inputTextarea 组件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 2013-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多