Execute managebean method from javascript onload event

转载 2015年11月20日 22:56:25

In theory the following should do it.

<h:body>
    <f:ajax event="load" listener="#{bean.onload}" />
</h:body>

with

public void onload(AjaxBehaviourEvent event) {
    // ...
}

However, this is not supported for some reason. I've ever posted an issue report about that.

The following works, but it's in essence a hack.

<h:head>
    <title>JSF 2.0 onload hack</title>
    <script>
        window.onload = function() {
            document.getElementById('hidden:link').onclick();
        }
    </script>
</h:head>
<h:body>
    <h:form id="hidden" style="display:none">
        <h:commandLink id="link">
            <f:ajax event="click" listener="#{bean.onload}" />
        </h:commandLink>
    </h:form>
</h:body>

If you happen to use PrimeFaces, then you can use its <p:remoteCommand> with autoRun set to true.

<h:body>
    <h:form>
        <p:remoteCommand name="onload" action="#{bean.onload}" autoRun="true" />
    </h:form>
</h:body>

Or if you're using OmniFaces, then you can use its <o:commandScript>

<h:body>
    <h:form>
        <o:commandScript name="onload" action="#{bean.onload}" />
        <h:outputScript target="body">onload()</h:outputScript>
    </h:form>
</h:body>

The <h:outputScript target="body"> renders the <script> in the end of the <body>. The upcoming OmniFaces 2.2 will remove this need by new autorun attribute.

<h:body>
    <h:form>
        <o:commandScript name="onload" action="#{bean.onload}" autorun="true" />
    </h:form>
</h:body>

JavaScript Event 事件处理机制之自定义事件处理方法

//Copyright (c) 2010 Nicholas C. Zakas. All rights reserved. //MIT License function EventTarget(){ ...
  • Kevinlou2008
  • Kevinlou2008
  • 2016年08月25日 20:57
  • 544

appium源码分析(八)-touch

摘要这次主要分析的对象时touch功能,如touchMove、touchUp、touchDown、touchLongClick。查看这些源代码的时候你会发现,他们都是继承于TouchEvent的这个类...
  • qq744746842
  • qq744746842
  • 2015年08月31日 13:21
  • 678

解决Android单个dex文件不能超过65536个方法问题

当我们的项目代码过大时,编译运行时会报Unable to execute dex: method ID not in[0, 0xffff]: 65536)错误。当出现这个错误时说明你本身自己的工程代码...
  • stevenhu_223
  • stevenhu_223
  • 2014年11月21日 15:58
  • 33835

OEM提示:Oracle 建议撤消 PUBLIC 对功能强大的程序包的 EXECUTE 权限

OEM提示:Oracle 建议撤消 PUBLIC 对功能强大的程序包的 EXECUTE 权限 程序包­: DBMS_RANDOM­ UTL_HTTP­ UTL_SMTP­ UTL_TCP­ ...
  • zhrzhl
  • zhrzhl
  • 2013年11月15日 13:46
  • 1453

js中load与onload的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 在写交互的时候,加载函数使onload还是load呢?纠结下,百度下,谷歌下。。。。。 趁机整理以防遗忘!! 且js中window.onloa...
  • ime33
  • ime33
  • 2017年01月08日 13:06
  • 8843

初次使用Android Studio的配置问题

初次使用Android Studio的配置问题使用书籍《第一行代码》郭霖 导致编译无法通过等等问题: @override报错 项目在模拟器上强制关闭 @override报错错误提示”met...
  • LHmaker
  • LHmaker
  • 2016年03月05日 12:23
  • 261

mybatis查询类型为int的字段,返回null的异常

原文链接:http://www.cnblogs.com/dingchenghong/archive/2012/07/04/2576504.html 项目中用mybatis3.x,用sql查询某个表类...
  • lee4037
  • lee4037
  • 2013年12月16日 23:40
  • 15945

5分种让你了解javascript异步编程的前世今生,从onclick到await/async

javascript与异步编程 为了避免资源管理等复杂性的问题, javascript被设计为单线程的语言,即使有了html5 worker,也不能直接访问dom. javascri...
  • u011394397
  • u011394397
  • 2016年09月21日 10:30
  • 1095

性能提升利器:MySQL 5.7多源主从复制的独特性

关于MySQL主从复制   复制技术顾名思义,就是通过数据库的复制技术以一份数据为主,复制成另一份存放,数据来源的那一份做为主库,存放复制数据的的称为从库。MySQL的复制方案有很多,比...
  • English0523
  • English0523
  • 2016年11月08日 14:55
  • 1076

JavaScript学习笔记(二十九) method()方法

method()方法 JavaScript很可能让那些习惯了从类的角度思考的程序猿感动疑惑。这也是为什么一些程序猿选择让JavaScript更类一些(class-like)。 其中一种尝试就是me...
  • qq838419230
  • qq838419230
  • 2013年06月06日 22:11
  • 2006
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Execute managebean method from javascript onload event
举报原因:
原因补充:

(最多只允许输入30个字)