【问题标题】:JSF. How to set a value of JavaScript function to a field of Bean?JSF。如何将 JavaScript 函数的值设置为 Bean 的字段?
【发布时间】:2011-11-26 02:59:20
【问题描述】:

早上好!如何将 JavaScript 函数的值设置为 Enterprice Java Bean 的字段?
我有js函数:

<script type="text/javascript">
    function getTimezone() {
      var d = new Date()
      var gmtMinutes = -d.getTimezoneOffset();
      return gmtMinutes;
    }
</script>

我正在尝试使用:

<a4j:jsFunction name="timezone" assignTo="MyBean.gmtMinutes">
       <a4j:actionparam name="timezone" value="getUserId()"/>
</a4j:jsFunction>

但我没有得到。我认为我错误地使用了标签 a4j:jsFunction。请给我建议如何正确使用标签!

【问题讨论】:

    标签: javascript jsf richfaces ejb ajax4jsf


    【解决方案1】:

    您可以注册一个jsFunction,它将参数的值发送到服务器:

            <a4j:jsFunction name="updateTimeZone">
                <a4j:param name="timezone" assignTo="#{MyBean.gmtMinutes}"/>
            </a4j:jsFunction>
    

    然后从 JavaScript 调用 jsFunction

    <script type="text/javascript">
        function sendTimezoneToServer() {
          var d = new Date()
          var gmtMinutes = -d.getTimezoneOffset();
          updateTimeZone(gmtMinutes);
        }
    </script>
    

    RichFaces Showcase 上也有一个相同的例子: http://richfaces-showcase.appspot.com/richfaces/component-sample.jsf?demo=jsFunction&skin=blueSky

    【讨论】:

    • 谢谢!但是写什么给“名字”呢? name="timezone" 正确吗?
    • @Andrei 在这种情况下没关系,将其命名为“时区”或“参数1”。是生成的js函数的参数名称(比如:function updateTimeZone(timezone))。
    • @Andrei 你能不能更有建设性。究竟是什么导致了这个问题?您是否查看了 RichFaces 展示中的示例?只是一个猜测:你的 jsFunction 周围有一个表单吗?
    • 我已经找到原因了,谢谢。原来我只需要添加另一个函数调用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    相关资源
    最近更新 更多