JSF Chapter04(频繁调用控件)

1.      

<!-- [endif]-->

用队列控制 Event Traffic

 

<!-- [if !supportLists]-->1)  <!-- [endif]-->以下两个属性用来避免由频繁的 DHTML 事件所引发大量的 request 请求。

· eventsQueue

· requestDelay

 

<!-- [if !supportLists]-->2)  <!-- [endif]-->对于能够引发 Ajax Request 的 4 种控件来说,以上两种属性都是可用的。

 

<!-- [if !supportLists]-->3)  <!-- [endif]-->eventQueue 属性

· 将 eventQueue 属性指定一个对列名,则在当前一个 Request 被 Server 处理而 Response 还未被发回之前,下一个 Request 都将停留在队列里,以等待 Response 被发回。

 

· 队列里总保持只有一个待发的 Request ,所有后续的 Request 都会将前面未发的 Request 清除掉。

比如,当你在 <a4j:support event=”onkeyup”> 的文本框中输入第一个字符‘ a ’,则第一个 Request 会被立即发到 Server ,但在 Response 被发回之前,你又输入了‘ b ’,则文本框里的值变为‘ ab ’,但这个 Request 只能等待第一个 Response 被发回来以后才能被送出。而此时,你又输入了第三个字符‘ c ’,则‘ abc ’的 Request 就回把队列里还没来得及发出去的‘ ab ’的 Request 清除掉。此时,第一个 Response “终于”回来了,则‘ abc ’的 Request 才被顺利的发出去。

 

· 大致测试了一下,当多个控件将队列名都设为同一个的时候,比如 eventsQueue = fooQueue ,控件之间的 Request 不会相互干扰,也就是说控件 B 的新的 Request ,并不会把同一队列中控件 A 的未发的旧 Request 清除掉。

 

<!-- [if !supportLists]-->4)  <!-- [endif]-->requestDelay 属性

· 单位毫秒 ms ,用来定义 Request 被发送出去之前,需要在队列里强制等待的时间。即使前面一个 Request 都没有,也必须老老实实等着到点。

 

· 可以将 eventsQueue 和 requestDelay 一起使用。

 

<!-- [if !supportLists]-->5)  <!-- [endif]-->ignoreDupResponse 属性

· 将此属性设为 true ,则当同一控件发出新的 Request 的时候,当前的 Response 将被 Ajax 忽略掉。

     注意,之前的 Request 在 Server 上已经被处理,只是 Response 在 Client 上被忽略掉了。

 

· eventsQueue 和 ignoreDupResponse 的区别在于:

     前者的 Response 总是会被 Client 处理,然后队列中的 Request 才被发出,属于“先来后到”;而对于后者来说,一旦发现同一控件又有了新的 Request ,则立即抛弃现有的 Response ,属于“喜新厌旧”。

 

· 如果设置了 ignoreDupResponse 而没有设置 eventsQueue ,则系统会根据控件的 ID 创建一个默认的事件队列。

 

 

<!-- [if !supportLists]-->2.       <!-- [endif]-->JavaScript 交互

 

<!-- [if !supportLists]-->1)  <!-- [endif]-->调用自定义的 JavaScript 函数

尽管使用 RichFaces 时不用写 JavaScript ,但 RichFaces 仍然允许你调用自定义的 JavaScript 函数。

· onsubmit :仅当 Ajax Request 被发送之前;

· onbeforedomupdate :仅当 DOM 更新被处理之前;

· oncomplete : 当 DOM 更新被处理完毕之后。

 

<!-- [if !supportLists]-->2)  <!-- [endif]-->data 属性

· 可以从 Server 上得到任何额外的数据,可以通过 EL 表达式简单地将 data 属性指向 bean property ,然后数据将会按照 JSON 的格式串行化到客户端。比如:

<a4j:commandButton value="Submit" reRender="out"

data="#{bean.text}" oncomplete="alert(data)"/>

 

· 除了基础类型,其他可以被串行化的复杂类型(数组、集合),也可以加入 JSON 格式。

 

 

<!-- [if !supportLists]-->3.       <!-- [endif]-->性能方面的考虑

 

<!-- [if !supportLists]-->1)  <!-- [endif]-->使用 eventsQueue 和 requestDelay

 

<!-- [if !supportLists]-->2)  <!-- [endif]-->使用 bypassUpdate 属性

当此属性设为 true 的时候, Update Model 和 Invoke Application 阶段将会被跳过,从而缩短响应时间。通常用在表单验证上。

 

<!-- [if !supportLists]-->3)  <!-- [endif]-->使用 <a4j:region>

· 当 renderRegionOnly 属性被设为 true 时, Browser 将只刷新当前 Region ,也就是发出 Ajax Request 的 Region 。对于 Region 以外的, Partial-Page 刷新将不会被处理。

· 当 renderRegionOnly 属性被设为 true 时,只有同时 满足以下两点的部分会被刷新:

     控件必须在引发 Ajax Request 的 Region 里;

     被设置为需要刷新(在当前 Region 的其他控件的 reRender 里或者在 <a4j:outputPanel ajaxRendered=”true”> 里)。

其他的部分一概不会被刷新。

· selfRendered 属性

 

 

<!-- [if !supportLists]-->4.       <!-- [endif]-->验证用户输入(实例)

 

<!-- [if !supportLists]-->1)  <!-- [endif]-->使用 <a4j:region> 或者 ajaxSingle 属性来限制 process 的 Region ,以避免控件间相互干扰。

<!-- [if !supportLists]-->2)  <!-- [endif]-->使用 <rich:message> 来显示错误信息。

<!-- [if !supportLists]-->3)  <!-- [endif]-->使用 <a4j:region> 以及 renderRegionOnly 属性,而不是 ajaxSingle ,来避免错误信息被其他控件的单独 process 而被清除掉。

<!-- [if !supportLists]-->4)  <!-- [endif]-->使用 bypassUpdate 属性来跳过 Update Model 和 Invoke Application 阶段。

 

 

<!-- [if !supportLists]-->5.       <!-- [endif]-->使用 <a4j:actionparam>

 

<!-- [if !supportLists]-->1)  <!-- [endif]--><a4j:actionparam> 可以被认为是 <f:param> 和 <f:actionListener> 的组合:

· <f:param> - 在 request 中传递参数;

· <f:actionListener> - 设置 Bean property 的值。

 

<!-- [if !supportLists]-->2)  <!-- [endif]-->与 <f:setPropertyActionListener> 非常相似:

· value 对应 value ;

· assignTo 对应 target ;

· name 、 converter 没有对应。

【注意】因为需要向 request 传递参数,因此 name 属性一定不能少。

 

<!-- [if !supportLists]-->3)  <!-- [endif]-->不同点:

· <a4j:actionparam> 向 request 传参数,因此当要传的不是 String 的时候,需要 Converter 的支持;而 <f:setPropertyActionListener> 是直接设置 Bean property ,因此它不需要指定 Converter 。

 

· <f:setPropertyActionListener> 因为是 <f:actionListener> 类的 ActionListener ,因此总比 actionListener 属性类的方法调用的晚(《 JSF 核心编程》)。因此想用 <f:setPropertyActionListener> 给 actionListener 属性类的方法传递数据,恐怕不可行。但 <a4j:actionparam> 兼具两种功能,因此可以用作给 actionListener 属性类的方法传递数据。

 

· <a4j:actionparam> 既可以给 <a4j:commandButton> 和 <a4j:commandLink> 传递参数,也可以给 <a4j:support> 传递参数。

 

 

<!-- [if !supportLists]-->6.       <!-- [endif]-->使用 <a4j:repeat>

 

<!-- [if !supportLists]-->1)  <!-- [endif]--><a4j:repeat> 与 <h:dataTable> 很相似,用法也接近。不同点在于 Ajax Request 之后 <a4j:repeat> 可以只刷新选中的行或列,而不必刷新整个表格。

 

<!-- [if !supportLists]-->2)  <!-- [endif]--><a4j:repeat> 的体可以包含多种代码,从 JSF 控件到 HTML ,不一而足。

 

<!-- [if !supportLists]-->3)  <!-- [endif]-->使用 ajaxKeys 属性对选中列或行进行部分刷新

【注意】通过 reRender 刷新的控件,必须确保它能生成一些标记 markup ;如果组件不生成任何 markup 或者 rendered 设为 false ,则应该将其置于 PlaceHolder 中,比如 <h:panelGrid> 或者 <a4j:outputPanel> 。

 

· 基本属性:

     value 、 var 与 <h:dataTable> 相同;

     rowKeyVar 代表行号的变量名, String 类型。

 

· ajaxKeys 属性,指向一个 java.util.Set 对象,其中包含着需要被刷新的行号,从 0 开始计数,接受 EL 表达式;

 

· 每一行里引发 Ajax Request 的控件的 reRender 属性决定哪些列要被刷新;而 ajaxKeys 决定哪些行要被更新。这两个属性精确定位了需要刷新的“单元格”,从而实现页面的部分刷新。

 

<rich:panel header="a4j:repeat Test">

<table>

<a4j:repeat value="#{nameListBean.nameList}" var="name"

rowKeyVar="rowNo" ajaxKeys="#{nameListBean.rowsToUpdate}">

<tr>

<td>

<h:outputText value="#{rowNo}"></h:outputText>

</td>

<td>

<h:outputText id="fullName" value="#{name.fullName}"></h:outputText>

</td>

<td>

<h:inputText id="firstName" value="#{name.firstName}">

<a4j:support event="onblur"

actionListener="#{nameListBean.refreshRowsToUpdate}"

reRender="fullName">

<a4j:actionparam name="rowNo" value="#{rowNo}"

assignTo="#{nameListBean.currentRow}"/>

</a4j:support>

</h:inputText>

</td>

<td>

<h:inputText id="lasttName" value="#{name.lastName}">

<a4j:support event="onblur"

actionListener="#{nameListBean.refreshRowsToUpdate}"

reRender="fullName">

<a4j:actionparam name="rowNo" value="#{rowNo}"

assignTo="#{nameListBean.currentRow}"/>

</a4j:support>

</h:inputText>

</td>

</tr>

</a4j:repeat>

</table>

</rich:panel>

 

 

<!-- [if !supportLists]-->7.       <!-- [endif]-->使用 <a4j:status>

 

<!-- [if !supportLists]-->1)  <!-- [endif]--><a4j:status> 可以用来显示 Ajax Request 发送和结束的状态。

<!-- [if !supportLists]-->2)  <!-- [endif]-->可以引发 Ajax Request 的那四个 <a4j> 控件都可以通过‘ status ’属性来指定 <a4j:status> 控件。

<!-- [if !supportLists]-->3)  <!-- [endif]--><a4j:status> 也可以被指定给 Region 。

<!-- [if !supportLists]-->4)  <!-- [endif]--><a4j:status> 的主要属性:

· startText 和 stopText

· <f:facet name=”start”> 和 <f:facet name=”stop”> ,任何 JSF 控件都可以加进来,包括 GraphicImage

<!-- [if !supportLists]-->5)  <!-- [endif]-->将 Status 指定给 Region

· 无需特别操作,只将 <a4j:status> 放在 Region 内即可;

· <a4j:status> 只为所在的 Region 服务,所在 Region 内部或外部的 Region 都不服务;

· <a4j:status> 也可以用其自身的 left 、 top 等属性精确定位。

 

 

<!-- [if !supportLists]-->8.       <!-- [endif]-->使用 <a4j:include> 和 <a4j:keepAlive>

 

<!-- [if !supportLists]-->1)  <!-- [endif]-->可以使用 <a4j:include> 在父 View 中包含子 View ,而子 View 仍然可以像正常 JSF 一样,按照导航规则导航。通常用来做向导之类的页面。

 

<!-- [if !supportLists]-->2)  <!-- [endif]--><a4j:include viewId="/step1.xhtml"/> 可以被放置于页面的任何位置。

【注意】 viewId 属性应该以“ / ”开头。

 

<!-- [if !supportLists]-->3)  <!-- [endif]-->在 faces-config.xml 中为子 View 定义导航规则, <from-view-id> 应该是子 View 的 view id 。

 

<!-- [if !supportLists]-->4)  <!-- [endif]-->使用 <a4j:keepAlive>

· 可以使 requestScope 的 bean 的生命长于 request 而又短于 Session ;

· name 属性指向 managed bean 的名字,而不是 EL 表达式;

· 原理在于, name 属性所指向的 bean ,在页面 render 之前被存储;当下一个 Request 到来时, bean 又被倒回 request ,而其之前的值仍然可用。

· 默认情况下, <a4j:keepAlive> 也可以为非 Ajax 请求服务;要想限制其只为 Ajax Request 服务,则要将其 ajaxOnly 属性设为 true 。

 

 

<!-- [if !supportLists]-->9.       <!-- [endif]-->使用 <a4j:jsFunction>

 

<!-- [if !supportLists]-->1)  <!-- [endif]--><a4j:jsFunction> 与其他四种可以引发 Ajax Request 的控件非常相似;不同点在于 <a4j:commandButton> 、 <a4j:support> 是通过 DHTML event 引发 Ajax Request ,而 <a4j:jsFunction> 是通过自定义的 JavaScript 函数来引发 Ajax Request 。当自定义 JavaScript 函数被调用的时候, Ajax Request 被引发。

<!-- [if !supportLists]-->2)  <!-- [endif]--><a4j:jsFunction> 也包含 action 、 actionListener 、 reRender 等属性,也可以包含 <f:param> 或 <a4j:actionparam> 。

<!-- [if !supportLists]-->3)  <!-- [endif]--><a4j:jsFunction> 也可以像 <a4j:commandButton> 一样作为独立控件使用,而不是像 <a4j:support> 一样。

 

 

<!-- [if !supportLists]-->10.   <!-- [endif]-->使用 <a4j:ajaxListener>

 

<!-- [if !supportLists]-->1)  <!-- [endif]-->该 Listener 只在 Render Response 阶段被调用,因此它总是会被调用到,不会被跳过。

<!-- [if !supportLists]-->2)  <!-- [endif]-->该 Listener 只为 Ajax Request 所调用。

<!-- [if !supportLists]-->3)  <!-- [endif]-->通常用来检查或设置需要被 render 的控件

MinerU与Docling:智能文档处理框架对比 本文对比分析了MinerU和Docling两大智能文档处理框架。MinerU专注于高精度PDF解析,采用多模态AI技术,在学术文献、金融报表等复杂文档处理上表现优异;Docling则定位企业级多格式文档处理平台,支持10+格式转换,更适合文档管理系统等场景。技术层面,MinerU基于VLM模型实现端到端处理,Docling采用插件化多后端架构。性能测试显示MinerU精度更高(95%+),但资源消耗较大;Docling处理速度更快(1-3秒/页),部署更灵活。 阅读详情

相关推荐

可信数据空间关键技术和功能架构研究

可信数据空间(TDS)是实现数据安全共享的基础设施,通过数字合约和使用控制技术确保数据跨域流通的可信与安全。其架构包括服务平台和接入连接器,关键技术涵盖访问控制、隐私计算、区块链等。评估重点在于合规性、连接器能力、互联互通及安全体系。核心在于构建规则引擎而非简单数据汇聚,连接器开发比平台建设更重要。当前面临技术成本博弈、跨域身份互认等挑战,需平衡安全、性能与成本,推动数据要素市场发展。

逸尘的专栏 2223

Practical_RichFaces要点Chapter04

Chapter04      Morea4j: Tags, Concepts, and Features 1.      用队列控制Event Traffic 1) 以下两个属性用来避免由频繁的DHTML事件所引发大量的request请求。· eventsQueue· r

GengV - 在Java的世界流浪 2720

【Transformer 相关理论深入理解】注意力机制、自注意力机制、多头注意力机制、位置编码

transformer原理

qq_38253797的博客 2万+

a4j:jsFunction的使用

Ajax4jsf所提供的灵活度是非常高。例如a4j:support等。通过实战,这里想重点介绍一下a4j:jsFuction和a4j:actionparam两个标签. a4j:jsFuction的有趣在于,它提供了一个客户端request前,和request后的js功能的截取添加。为了理解这个概念。首先,把a4j:jsFuction看作一个js fuction.名字由name属性来定义。如果我们给...

不疯的疯子 1106

Linux - xarray 工具类

第三层节点直接与绿色的值绑定,若需要像数组一样通过下标访问绿色的值对象那么需要给每一个节点进行编码,这样通过根节点即可访问到具体的对象。对于未使用到的小数组不申请空间,这样只需设计一种方法将这些非连续的小数组在一个数据结构中组织在一起即可,对于这个数组结构需要具有结构紧凑并且能够快速定位到对应的小数组段上,这时候树形结构上场了。一个很大的数组必然可以由一个个小数组拼接而成,若定义一个最小粒度的数组长度,比如长度4,那么从宏观上看一个大数组就由一个个长度为4的小数组排队而成。

ymf604的专栏 1085

【MATLAB强化学习工具箱】学习笔记--在Simulink环境中训练智能体Create Simulink Environment and Train Agent

Simulink中便于搭建各类动力学与控制模型,通过将原有的控制器替换为AI控制器,可以方便使用已有模型,提供增量效果。 本节的重点是如何引入Simulink模型作为env,其他的内容在之前的文章中已有说明。 以水箱模型watertank为例,如下图所示: 采用PI控制器,控制效果如下所示: 将此PI控制器替换为神经网络控制器后,系统架构如下图所示: 具体替换策略如下所示: (1)删去PID控制器; (2)增加RL Agent模块; (3)观测器模块: 观测向量为:,其中...

bear_miao的博客 1万+

jsf学习之a4j组件

a4j:ajaxListener a4j:region a4j:page a4j:support a4j:commandLink a4j:commandButton a4j:outputPanel a4j:actionparam a4j:status a4j:loadBundle a4j:mediaOutput [@more@]

lxm_csdn的博客 6194

OpenIddict实战:5步搞定.NET Core应用的OIDC单点登录集成

本文详细介绍了如何使用OpenIddict在.NET Core应用中快速实现OIDC单点登录集成。通过五个关键步骤,包括环境准备、数据库集成、客户端注册、令牌配置和多应用SSO集成,帮助开发者高效构建安全的企业级单点登录解决方案。

lambda的博客 727

JSF Richfaces

JSF RichFaces 中文用户开发指南 2009年02月05日 10点14分47秒 作 者:73cc.com 1. 介绍 2. 开始使用Ajax4jsf 环境需求 下载Ajax4jsf 安装 简单的 AJAX Echo 项目 JSP 页面 数据 Bean faces-config.xml Web.xml 部...

feiz3020的专栏 501

【Burp入门第二篇】Chrome配置BurpSuite代理教程

1、配置Burp代理为127.0.0.1:80802、扩展商店添加插件switchyomega,修改服务器和端口为下图:3、打开代理,选择刚才添加的代理

等风来 8368

为YOLO11更换Backbone(一):轻量化之星GhostNet

摘要: 本文重点介绍了轻量化Backbone网络GhostNet及其在YOLO11中的应用。首先分析了Backbone网络在目标检测中的重要性,指出其需平衡特征提取能力和计算效率的需求。然后详细解析了GhostNet的核心思想,包括其通过"幽灵模块"生成冗余特征的设计原理,该模块使用1×1卷积生成少量内在特征,再通过廉价线性变换生成更多幽灵特征,显著降低了计算量。GhostNet的创新设计使其在保持精度的同时大幅减少了参数和FLOPs,为YOLO11等目标检测模型提供了高效的轻量化解决方

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1498

JSF Chapter04

. 用队列控制 Event Traffic 1) 以下两个属性用来避免由频繁的 DHTML 事件所引发大量的 request 请求。 · eventsQueue · requestDelay 2) 对于能够引发 Ajax Request 的 4 种控件来说,以上两种属性都是可用的。 3) eventQue...

e家 159

Windows部署OpenClaw报错不断?这篇环境配置指南帮你解决难题

想在Windows上部署OpenClaw却频频报错?🔧 本文详细梳理了OpenClaw部署必需环境的安装步骤和官方下载地址 📦,提供完整的验证清单和常见问题排查方法,帮你一次性搞定所有环境配置,顺利部署OpenClaw ✅

XiaoqiangClub的博客 6640

用a4j:keepAlive来解决后台bean范围的困扰

我把后台bean的范围从session改为request之后,发现按钮失效,细想之后觉得原因是由点击按钮导致后台bean重新实例化使数据不能保存,但让后台bean保持session的效果的话,页面不太安全,所以用keepAlive组件可以使特定的数据得以保存。

http://wedawed.blog.tianya.cn 1902

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

<a4j:keeyAlive>的英文介绍

If a managed bean is declared with request scope in the configuration file with the help of  tag then the life-time of this bean instance is valid only for the current request. Any attempts to mak

周二也被占用 723

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

A4j 动态include页面 格式注意

&lt;a4j:include ajaxRendered="true"      viewId="/templates/include/#{panelMenu.location}"/&gt;   1.让a4j工作在Ajax监听模式,只要页面Ajax提交,就会更改页面   2.包含进来的页面,最好以标准的facelet格式写   &lt;html xmlns="http://www.w3.org/1...

不疯的疯子 172

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

richfaces组件使用

1、viewId所定义的路径必须为绝对路径。 2、a4j:include 必须定义在body体里面。否则会引起form的冲突

http://wedawed.blog.tianya.cn 159

ajax4jsf常用标签的使用

a4j:ajaxListener和 ActionListener或者ValueChangeListener的工作方式一样, 只是仅用于AJAX容器. 添加一个指定的类作为AjaxEvent的监听器. (sent in case of an AJAX request for this container). Table 4.1. a4j:ajaxListe

XiaoYi's BLOG 2183

JSF普通迭代标签(a4j:repeat)

        本人最近项目用JSF,由于是第一次用这东西,好多东西都不清楚,以前一直也就是 实现表格的迭代,今天是需要连接一个附件,每个都是一个单独的链接,找了半天终于发现这样可以!         0}" />         其中红色部分是当大于一条记录时中间用分号隔开。 需要在上面引入:http://richfaces.org/a4j"

JAVA学习专用BLOG 6502

ajax4jsf

解压 ajax4jsf.zip 文件. 复制 ajax4jsf.jar and oscache-2.2.jar 到程序的 WEB-INF/lib 文件夹下. 把下面的内容添加到你的程序的 WEB-INF/web.xml 文件中:                       Ajax4jsf Filter           ajax4jsf           org.ajax4jsf.Filte

待定的专栏 2730

vue中使用keepAlive组件缓存遇到的坑

项目开发中在用户由分类页category进入detail需保存用户状态,查阅了Vue官网后,发现vue2.0提供了一个keep-alive组件。 上一篇讲了keep-alive的基本用法,现在说说遇到的坑。 先说项目中的配置 在App.vue中的设置 在router中增加配置meta 上面这个设置后发现问题了,从category进入det...

weixin_30505043的博客 3621

<a4j:include/>

使用方法

maxwell 159

JBoss China's Archiver RichFaces的a4j:region

<br />Larry 发表于 2009-11-3 10:33RichFaces的<a4j:region>--JSF的局部组件树处理<br />[i=s] 本帖最后由 Larry 于 2009-11-3 11:25 编辑 [/i]<br /><br /><a4j:region>标签是最容易让人误解的RichFaces标签之一,但它同时也是RichFaces的最重要的特点之一。有了它,服务器端处理可以仅限于某些指定的组件。<br />       其中一个原因可能是误解标签名称。许多人认为,该标签是为限制JS

honzezhang的专栏 1200

jsf的managed bean 的序列化与spring矛盾

今天在使用 richfaces的标签做一个ajax的注册向导,其中还用到了hibernate及spring框架,在读取数据库数据时碰到了一个比较头疼的问题,如果不对manage bean使用序列化,则会报错,用了吧,则无法正常使用hibernate读取数据库的数据,折腾了一整天才找到这个毛病,没办法只好用jdbc来处理了。<!-- google_ad_client = "pub-43

hornbilltofy的专栏 890

ajax4jsf 1.0.2 发布,添加新的a4j tags.

ajax4jsf 1.0.2 版在 September 26, 2006 发布.可以到这里[url=https://ajax4jsf.dev.java.net/nonav/ajax/ajax-jsf/download.html][color=orangered]download[/color][/url] 下载.在 1.0.2中 我们添加了3个新的 核心 a4j tags: a4j:poll, a...

withyou 209
上一篇: restful web服务
下一篇: JSF Chapter01
wang2222
博客等级 码龄19年 0粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值