我有一个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>
但这些都不起作用。我做错了什么?
答案 0 :(得分: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>