- 浏览: 282084 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (121)
- jsf (16)
- 技术 (1)
- seam (27)
- jpa/hibernate (6)
- seam-对话 (3)
- 复用组件 (1)
- java基础 (18)
- JBOSS (1)
- Facelets (3)
- EL表达式 (2)
- 正则表达式 (1)
- sogi (2)
- 工具 (2)
- 设计模式/重构 (2)
- 项目管理-maven (5)
- EJB (1)
- ClassLoader (2)
- eclipse (1)
- jQuery (0)
- seam2源码分析 (0)
- osgi (0)
- TEST (0)
- 日志记录 (1)
- 批处理工作流 (0)
- 业务需求 (0)
- 语言 (2)
- 架构 (2)
- svn (1)
- sql (1)
- 异常处理 (1)
- mybatis (2)
- http (2)
- 代码可读性 (3)
- 配置化 (0)
- 错误恢复 (0)
- 状态查询 (1)
- 误操作恢复 (0)
- 工作安排 (0)
- 自动化 (0)
- 解耦 (1)
- 交流 (1)
- spring (6)
- 代码质量 (2)
- 方案 (1)
- 分布式 (1)
- mvc (2)
最新评论
-
luchuanbaker:
经过测试,实际上,mybatis并没有此问题,我也碰到了这样的 ...
mybatis 异常不友好 举例 -
huang882088:
jboss的war发布到tomcat里报这个错误怎么办?
classloader常见问题总结 -
yourenyouyu2008:
大型,可持续扩展的系统适合使用静态语言。大型系统中的部分地方可 ...
Nuxeo公司探秘:从Python迁移到Java -
yourenyouyu2008:
既然Nuxeo同时使用了Pytho ...
Nuxeo公司探秘:从Python迁移到Java -
panshunchang:
还有一种可能,真的缺这个jar包,在tomcat lib目录下 ...
classloader常见问题总结
jsf1.2只提供了3中作用域,application、session、request;jsf2.0增加 view和自定义作用域;seam 使用page作用域扩展了view作用域。
有一个非常普遍的需求在jsf1.2中难于解决,当对一个request级的业务对象编辑时页面上必须有这个对象的全部属性的输入域,包括不可改变的对象标识(id)必须用<h:hidden value="#{mb.myObject.id}"/>,如果某种情况下只需要对部分属性进行编辑,而另外的情况下对其他的属性进行编辑,但是这两个页面中必须有全部属性输入框,不需要修改的部分用hidden,如果对象有几十个属性这将是件很麻烦的事情。
要想页面上只写要编辑的属性的输入框,那么必须提高作用域级别,换成session级别显然是不合适的(可以解决该问题,但会带来其他问题)。seam引入了page作用域,简单来说就是显示编辑页面后将业务对象保存到组件树中,再次提交时首先从组件树中恢复出业务对象,这样页面上没有的属性也不会丢值,只对页面上有的属性进行更新。
源码讲解。。。。。。
如果没有使用seam可以使用一个简陋的seam实现代替,这是个jsf jar,放到web-inf/lib下即可。
在classpath下增加managebean.xml文件,在里面配置你的page作用域bean,不需要在jsf中配置了。
<?xml version="1.0" encoding="UTF-8"?>
<!--
<mbean><class key="EquipmentBB" value="cn.cjitec.its.common.bb.EquipmentBB"/></mbean>
-->
<mbean><class key="EquipmentBB" value="cn.cjitec.its.common.bb.EquipmentBB"/></mbean>
<mbean><class key="ContractBB" value="cn.cjitec.its.common.bb.ContractBB"/></mbean>
<mbean><class key="CusOrgBranch" value="cn.cjitec.its.common.bb.CusOrgBranch"/></mbean>
bean示例,一定要序列化呀
@Name("EquipmentBB")
@Scope(ScopeType.PAGE)
public class EquipmentBB implements Serializable {
- myseam.jar (24.5 KB)
- 下载次数: 9
评论
composite.add(IMPLICIT_RESOLVER);
addELResolvers(composite, associate.getELResolversFromFacesConfig());
addVariableResolvers(composite, associate);
addPropertyResolvers(composite, associate);
addELResolvers(composite, associate.getApplicationELResolvers());
composite.add(MANAGED_BEAN_RESOLVER);
composite.add(BUNDLE_RESOLVER);
composite.add(FACES_BUNDLE_RESOLVER);
composite.add(MAP_RESOLVER);
composite.add(LIST_RESOLVER);
composite.add(ARRAY_RESOLVER);
composite.add(BEAN_RESOLVER);
composite.add(SCOPED_RESOLVER);
其中MANAGED_BEAN_RESOLVER和SCOPED_RESOLVER是用于manageban的
com.sun.faces.el.ScopedAttributeELResolver
com.sun.faces.el.ManagedBeanELResolver
ManagedBeanELResolver和ScopedAttributeELResolver的不同之处在于ManagedBeanELResolver用于创建bean 并将将创建好的bean设置进对应scope中,这样 ScopedAttributeELResolver就能获取到任何bean了。
还有ELContext为何通过表达式就可以取出管理bean了??
发表评论
-
spring seam比较
2014-01-14 14:06 9191)获取框架中的bean spring通过静态方法中传递 ... -
Nuxeo公司探秘:从Python迁移到Java
2013-07-21 10:57 1045成立于2000年的Nuxeo公 ... -
自定义组件问题
2013-03-01 10:14 01)ios:dataTable组件中不加buttonPane ... -
seam中内嵌的事务回滚拦截器RollbackInterceptor
2012-12-28 15:17 2075seam中有两种事务管理方 ... -
使用JTA的事务同步机制实现分布式事务j的功能avax.transaction.Synchronization
2012-12-05 18:43 0分布式事务强大功能,但也会带来性能和管理上的压力(这是听专家门 ... -
seam中的test
2012-04-25 11:25 0seam中提供了一些非seam环境下的unit testing ... -
Hibernate的FlushMode 和seam对话中的FlushMode
2012-02-21 17:29 0hibernate提供了5种flushmode。 1) NE ... -
seam 中的注释分类
2012-02-14 11:08 0seam中注释主要分为2大类,seam组件对象构造阶段的注释和 ... -
seam2 热部署
2011-09-30 10:25 1165seam能很好地支持 页面(faceslet)、非ejb cl ... -
使用长对话的"manual" flush-mode ,多操作一次提交
2011-03-24 10:27 1520一次长对话访问中可以包括多个页面,每个页面只处理部分数据,但不 ... -
seam 属性配置与installed="false"的冲突
2011-03-08 15:09 1094问题 在测试和运行环境使用不同的事务配置,默认不需要指定事务 ... -
最简单的richfaces tree使用方式
2010-10-30 12:54 2323richfaces tree提供的示例都是一次全部构造出树,对 ... -
seam框架中@Unwrap的使用示例
2009-09-07 10:07 16311) 把FacesContext当seam组件使用,可以直接 ... -
基于seam技术的中文网站
2009-09-05 16:28 1325基于seam的中文网站,欢迎大家提供实际的seam项目 ht ... -
在seam项目启动后执行数据库操作
2009-07-15 15:33 1752项目启动时执行些初始化数据操作,问题是事务不能提交,这样虽然方 ... -
基于seam-gen的热部署(hot deploy)相关问题
2009-07-06 12:04 1464使用seam-gen生成的seam项目是支持热部署的。 ... -
提升jsf/seam性能
2009-05-23 22:07 1407转载:http://www.jsfcentral.com/ar ... -
根据组件名字获取组件对象Component.getInstance(String name)
2009-05-05 22:02 3981Component.getInstance(String ... -
components.xml 配置seam组件
2009-04-29 12:21 2386components.xml 的配置采用反射机制来实现,组件类 ... -
下拉框的国际化
2009-04-22 17:32 2064<f:selectItem itemLabel=&quo ...
相关推荐
李兴华java web开发实战经典课程源代码 page
李兴华java web开发实战经典课程源代码 page_scope
强大的Word、Excel 动态数据填充及格式控制功能。服务器端无需安装Office软件,根据数据库数据通过PageOffice动态赋值即可完成复杂的具有严谨规范格式的文档生成任务,并且可以在浏览器页面里查看、编辑生成的文档。...
JSP指令,page指令,errorPage和isErrorPage等属性的介绍。
开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发...
现在梦想已经成真,想在网页上显示编辑Word、Excel文档并且调用微软Office的强大功能,就直接从工具箱拖动一个PageOffice控件到Web页面上就可以了,就和使用常用的TextBox控件一样简单方便。 PageOffice是什么? ...
pageoffice.js
pageoffice控件帮助文档,使用pageoffice 时调用客户端js 方法说明
PageOffice支持在JSP页面中预览和编辑word,ppt,excel等PageOffice支持在JSP页面中预览和编辑word,ppt,excel等PageOffice支持在JSP页面中预览和编辑word,ppt,excel等PageOffice支持在JSP页面中预览和编辑word,ppt,...
SpringBoot集成PageOffice
Scope Walkthrough, page 125 Solution to Programming Project 3.9, page 140 Chapter 4 Using an Integrated Debugger, page 173 Solution to Programming Project 4.4, page 180 Solution to Programming Project...
pageoffice客户端控件
演示Spring Boot 下如何集成PageOffice实现在线处理office文件的效果。此示例基于PageOffice4.3.0.2版本(此版本之后的PageOffice都是可以支持Springboot) 开发环境:jdk1.8、Eclipse、Sping Boot + Thymeleaf框架
PageOffice 版本号3.4.0.2 带序列号 可用于在线打开并编辑文档
MasterPage, Page, UserControl 如何互动,传值的例子。网上找到的
PageOffice_4.6.0.4_Java.zip
page翻页php方法,简单易懂,希望大家多多支持
pageScope、requestScope、sessionScope、applicationScope区别