0

我有一个javascript,我把它放在extraHeaderContent 中:

<ui:define name="extraHeaderContent">
    </script> -->
    <script type="text/javascript">
    function getTimezoneName() {
        var timezone = jstz.determine_timezone();
        return timezone.name();
    }
    </script>
</ui:define>

我想使用这个脚本来获取时区,然后在 a4j:jsFunction 中使用它,如下所示:

<a4j:jsFunction name="getTimezoneName" data="#{usertimezone.userTimeZone}" >
             <a4j:actionparam name="userTimeZone" 
                              assignTo="#{usertimezone.userTimeZone}"
                              />
</a4j:jsFunction>

甚至像这样:

<a4j:jsFunction action="#{usertimezone.prepareTimeZone()}" >
             <a4j:actionparam name="userTimeZone" 
                              value="getTimezoneName()"
                              assignTo="#{usertimezone.userTimeZone}"
                              noEscape="true"/>
</a4j:jsFunction>

但这些都不起作用。我究竟做错了什么?

4

1 回答 1

2

我认为您对 a4j:jsFunction 的工作方式感到困惑,它允许您从 javascript 触发服务器端方法(您似乎正试图以相反的方式工作)

例如...

<a4j:jsFunction name="myJavascriptMethod" action="#{myActionBean.myJavaMethod}" >
    <a4j:actionparam name="param" assignTo="#{myActionBean.beanParam}"/>
</a4j:jsFunction>

<script>
    var param = "foo";
    myJavascriptMethod(param);
</script>
于 2013-05-20T15:06:48.987 回答