How to invoke a JSF managed bean on a HTML DOM event using native JavaScript?

c#中泛型的协变与逆变:<in T>详解 MSDN上的demo:http://msdn.microsoft.com/zh-cn/library/dd469484.aspx 阅读详情

I need to execute a JSF managed bean action method using ajax during HTML DOM load event, similar to jQuery's $(document).ready(function() { $.ajax(...) }). I can only use the JavaScript generated by JSF in this project. Is there a way to do it in native JSF? Which event can I use or which JSF ajax function can I use?

I'm using JSF 2.0, Facelets and PrimeFaces.


Several ways.

  1. Use the "hidden form" trick (actually, "hack" is given the ugliness a better wording).

    <h:outputScript target="body">
        document.getElementById("form:button").onclick();
    </h:outputScript>
    <h:form id="form" style="display:none;">
        <h:commandButton id="button" action="#{bean.onload}">
            <f:ajax render=":results" />
        </h:commandButton>
    </h:form>
    <h:panelGroup id="results">
        ...
    </h:panelGroup>

    Note that <h:outputScript target="body"> automatically puts the <script> in end of <body>, thus a $(document).ready() or window.onload wrapper is unnecessary. Also note the importance of triggering onclick() instead of click() in case of <h:commandButton>. The onclick() immediately invokes the onclick function while the click() only triggers the "click" event on the element, which is not supported in IE.

  2. As you're already using PrimeFaces, just use its <p:remoteCommand> with autoRun="true".

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

This however doesn't use JSF native  jsf.ajax.request() , instead it uses PrimeFaces native jQuery (you know, PrimeFaces is a JSF component library on top of jQuery/UI).

3. Create a custom UIComponent which extends UICommand and generates the necessary JSF native jsf.ajax.request() call. You're then in essence reinventing the <p:remoteCommand> to use native JSF ajax instead of jQuery. The JSF utility library OmniFaces has a <o:commandScript> component which does exactly that. See also the showcase and the source code.

  1. <h:outputScript target="body">
        onload();
    </h:outputScript>
    <h:form>
        <o:commandScript name="onload" action="#{bean.onload}" render=":results" />
    </h:form>
    <h:panelGroup id="results">
        ...
    </h:panelGroup>
一点注解:<prime:remoteCommand> is intended to call back end bean methods from Javascript. Combine it with the update property to update the screen. Another property, autoRun, allows you to use<prime:remoteCommand> without Javascript code. autoRun="true" makes sure the back end method is called automatically after the form is displayed. Insert the remoteCommand immediately before the closing </form> tag:
  < prime:remoteCommand autoRun = "true" action = "#{myBean.init}"
                          update = "content" name = "longRunningInit" />
</ form >

Be careful to define the update property correctly. The updated region of the screen shouldn’t include the remoteCommand. You don’t want to get an infinite loop.

You can call an arbitrary method of the bean. If you call <prime:remoteCommand> from Javascript, you can even pass parameters to the bean’s method. Of course, usingautoRun="true" doesn’t allow us to pass parameters, so a simple parameterless method will do.


【嵌入式笔试题】C语言笔试题(4) 嵌入式C语言综合笔试题 阅读详情

相关推荐

Ubuntu20.04复现instant-ngp,自建数据集,导出mesh

本次仅仅记录一下自己复现instant-ngp的过程,如果里面的参考有冒犯到原博主请联系我删除,本人也是nerf的小白一枚,可以一起交流学习神经辐射场,希望大家在复现instant-ngp的时候少走一些坑,情况允许下可以去复现一下npg-pl和nerfStudio,最后希望大家一起进步。看到一些博主说葵司的npg_pl也不错,而且葵司是台湾人,在youtube上也有讲解的视频。渲染的效果还是可以的,相对于源码来说还是有点模糊,我一些参数也没有设置,直接就拉进来进行渲染,速度是非常快的。

weixin_59961223的博客 9451

VUE前端页面 阿里云视频播放器 报错:Aliplayer is not defined

阿里云视频播放器 报错:Aliplayer is not defined 问题: 1、跳转页面报Aliplayer is not defined错误 2、需要刷新一下页面才可以正常播放 3、ReferenceError: Aliplayer is not defined at VueComponent.mounted (_vid.vue?0e11:156:1) 显示无法new Aliplayer({}) 解决:1、确保 new Aliplayer是写在 mounted(){}方法中。 2、确保playAut

一位菜鸡的博客 5301

DisplayPort信号通道深度解析:从物理层到协议栈

DisplayPort(DP)是一种面向高速串行通信的数字显示接口标准,其核心在于嵌入式时钟、自适应均衡与链路训练三位一体的物理层架构。不同于HDMI依赖独立时钟的TMDS方案,DP通过差分主链路(Main Link)承载编码数据流,以8b/10b或128b/132b编码实现高带宽与强鲁棒性。该技术价值体现在多速率自适应、误码恢复能力及对PCB布线与阻抗控制的严苛要求,广泛应用于8K显示、工业视觉、GPU直连等高性能场景。本文聚焦DP信号通道的管脚级实现、三层协议解耦(物理层/数据链路层/事务层)及链路训练

weixin_34214500的博客 256

踩了阿里云播放器的一个坑

偶然在多个页面使用了阿里云提供的播放器的系统里发现个 BUG 在 PC/MAC 端的 Chrome 浏览器中 1. 一部分页面加载播放器时报错且没有任何提示 2. 而另一部分页面加载播放器时,Chrome 会弹出“是否允许该页面使用 Flash Player”的提示,点击”允许“,则视频正常播放 3. 在可正常播放视频的页面中,点击了“允许”后,再回到有问题的页面,刷新,发现

...的博客 8584

Oracle登录报错ORA-12560?5分钟搞定TNS协议适配器错误的完整修复指南

本文详细解析了Oracle登录报错ORA-12560(TNS协议适配器错误)的成因与解决方案。从基础服务检查到高级网络配置排查,提供了一套完整的修复流程,帮助数据库管理员快速解决连接问题,确保Oracle数据库的稳定运行。

weixin_29278805的博客 523

Windows 11下ROS2 Humble与PyCharm无缝集成实战(避坑指南+完整配置流程)

本文详细介绍了在Windows 11系统下如何实现ROS2 Humble与PyCharm的无缝集成,包括环境准备、ROS2 Humble安装、PyCharm配置以及C++与Qt5混合开发的实战技巧。通过避坑指南和完整配置流程,帮助开发者高效搭建稳定的机器人开发环境,特别适合Windows平台的ROS2开发者。

weixin_28710999的博客 368

自定义Filter引起的 Failed to invoke the method 问题解决

自定义Filter引起的 Failed to invoke the method 问题解决一:问题的表现和最终结论1 问题的表现:2 最终结论:二:解决过程详述1 看日志2 问题溯源3 问题定位4 错误分析,解决问题三:总结1 知识点汇总2 心得 一:问题的表现和最终结论 1 问题的表现: 出问题的项目,使用的分布式服务框架是dubbo。正常时启动项目需要启动多个服务,这里暂时定义为 server-task,server-application,server-pay 三个服务。在不知道哪一次的代码迭代后,出

weixin_44137343的博客 4796

【无标题】阿里云web播放器 ios报4301错误

在使用阿里云播放器播放阿里云加密视频时候苹果的手机和电脑都会报错4013错误,我们的原因是后台的debug没有关闭,下次遇到可作为造成原因之一查看

qq_43053533的博客 887

构建.NET网站:VSCode还是Visual Studio?揭开开发工具的选择之谜

选择VSCode还是Visual Studio,归根结底是取决于你的具体需求和偏好。🔍 这两款工具各有千秋,都能为你的.NET网站开发提供强大的支持。希望这篇文章能够帮助你更全面地了解这两款工具,做出明智的选择。

墨夶的博客 788

YOLOv8【第一章:基础入门篇·第2节】一文搞定,数据集制作与标注完全指南!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏,该专栏专注于分享我在YOLOv8目标检测模型中的实战经验,涵盖从入门基础到深度优化的全方位解决方案。无论你是计算机视觉的新手,还是具有多年深度学习经验的专家,本专栏都将为你提供高效、可复现的技术方案,助你掌握YOLOv8的核心技术,提升目标检测性能,突破瓶颈,优化模型,并加速项目开发🚀!

**My Coding Family** 1508

JSF2中轻松使用ajax

1:使用JSF2提供的ajax的理由       js兼容性:写过web应用的朋友都知道,js在各个浏览器中的不兼容是出了名的,在IE上运行好好的放到firefox下可能没法正常运行,或者相反的情况在firefox下正常运行的代码在IE上无法运行,甚至在IE6下能正常运行的代码在IE8里面不能正常运行,但是JSF2.0中将所有的不一致都隐藏起来了,开发者或者使用者无需关心这些恼人的问题。 

8388

XCP实战系列介绍07-使用ASAP2 Editor生成A2l文件详解

介绍通过ASAP2 Editor工具生成A2l文件步骤详解

initiallizer的博客 7298

通过反射,创建类的实例二

通过反射,创建类的实例二 这次我们通过传递参数和定义接口的方式来创建实例 namespace Interface { public interface IObjcet { void Put(); void Put(string plus); } } using System; namespace NetStar.Biz {

每天进步一点点 720

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

LinqToNorthwind

原文:http://code.msdn.microsoft.com/vstudio/LinqToNorthwind-875bafdb/sourcecode?fileId=46093&pathId=1173306596 ObjectDumper类: using System; using System.IO; using System.Collections; using Syste

每天进步一点点 1370

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

XMLHttpRequests规范文档

XMLHttpRequestW3C Working Draft 20 August 2009This Version:http://www.w3.org/TR/2009/WD-XMLHttpRequest-20090820/La...

csw13469的博客 403

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Generic Data Access Helper using Entity Framework 6.1 (Code First)

原文:http://www.codeproject.com/Articles/898206/Generic-Data-Access-Helper-using-Entity-Framework?msg=5044112#xx5044112xx Motivation When we write a simple logic that accesses database using E

每天进步一点点 1088

年终巨献 史上最全 ——LINQ to SQL语句

LINQ to SQL语句(1)之Where 适用场景:实现过滤,查询等功能。 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句。Where操作包括3种形式,分别为简单形式、关系条件形式、First()形式。下面分别用实例举例下: 1.简单形式: 例如:使用where筛选在伦敦的客户 var q = from c i...

weixin_30379973的博客 5833

Vue 官方教程练习中碰到的问题

[Vue warn]: You may have an infinite update loop in a component render function 单元素/组件的过渡例子练习中报了这个警告,从字面意义上来看是组件渲染的时候无限循环了,按照官方例子来写的,理论上应该不会啊。 Toggle Vue! 仔细检查了一下,发现了问题,偷懒用错了方法...

ActionPig 的 Js 551

记录前端调试时报错以及解决

报错信息: Refused to execute script from 'URL' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled 注意js、css的引用顺序十分重要,比如jQuery要在bootstrap前面引用 引用文件的路径不对 关于X-Content-Options:nosniff字段的问题 X-Content-Options是Micros

l379075的博客 1003

引入js文件报错的三种解决方法

eclipse导入项目js文件报错【原因是Eclipse的js校验功能引起的!】 1️⃣、简单解决方法是:js文件右键Validate 手动执行js校验,js文件右键validate。这样可以消除单个js的报错提示。 2️⃣、永久解决方法是:关闭的Eclipse的js校验功能。 步骤:【Window】---【Preferences】---【JavaScript】---【Validator】...

weixin_42684618的博客 7974

SignalR如何实现分布式聊天

This is the rebirth of my blog. I’ve been busy over the last few months with projects like JabbR, SignalR and other stuff. With the upcoming release of SignalR 0.5, I thought it’d be good to write a

ddxkjddx的专栏 5507

关于AppendFormat("{0:X2}")

版权声明:本文为博主原创文章,未经博主允许不得转载。    https://blog.youkuaiyun.com/Joyhen/article/details/41576841 StringBuilder sb = new StringBuilder(); sb.AppendFormat("{0:X2}", 10); Response.Write(sb); 输出A X2表示十六进制格式(大写),域宽2位...

oshan2012的博客 3651

反射:InvokeMethod 活动调用多种方法的方法配置要点

MethodName: 方法名称 TargetObject: 当调用方法不为静态的时候,需要新建调用方法类实例 TargetType: 当调用方法为静态的时候,需要指定调用方法类的类型 GenericTypeArguments: 若调用方法为静态方法,则在此泛型集合中指定。 Parameters: 在此集合中指定方法参数的值 Result: 在此指定方法返回值   ---------...

weixin_33928467的博客 166

this.Invoke( ) 括号中委托的几种写法

由于invoke函数括号中的参数类型必须是委托,所以:    以下内容转载自:https://blog.youkuaiyun.com/joyhen/article/details/47610409using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System...

cjl9688的博客 1万+
上一篇: Execute managebean method from javascript onload event
下一篇: Maven Lifecycle and Goals
DViewer
博客等级 码龄16年 16粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值