- 浏览: 286727 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 9541)获取框架中的bean spring通过静态方法中传递 ... -
Nuxeo公司探秘:从Python迁移到Java
2013-07-21 10:57 1083成立于2000年的Nuxeo公 ... -
自定义组件问题
2013-03-01 10:14 01)ios:dataTable组件中不加buttonPane ... -
seam中内嵌的事务回滚拦截器RollbackInterceptor
2012-12-28 15:17 2119seam中有两种事务管理方 ... -
使用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 1199seam能很好地支持 页面(faceslet)、非ejb cl ... -
使用长对话的"manual" flush-mode ,多操作一次提交
2011-03-24 10:27 1543一次长对话访问中可以包括多个页面,每个页面只处理部分数据,但不 ... -
seam 属性配置与installed="false"的冲突
2011-03-08 15:09 1119问题 在测试和运行环境使用不同的事务配置,默认不需要指定事务 ... -
最简单的richfaces tree使用方式
2010-10-30 12:54 2360richfaces tree提供的示例都是一次全部构造出树,对 ... -
seam框架中@Unwrap的使用示例
2009-09-07 10:07 16571) 把FacesContext当seam组件使用,可以直接 ... -
基于seam技术的中文网站
2009-09-05 16:28 1360基于seam的中文网站,欢迎大家提供实际的seam项目 ht ... -
在seam项目启动后执行数据库操作
2009-07-15 15:33 1794项目启动时执行些初始化数据操作,问题是事务不能提交,这样虽然方 ... -
基于seam-gen的热部署(hot deploy)相关问题
2009-07-06 12:04 1493使用seam-gen生成的seam项目是支持热部署的。 ... -
提升jsf/seam性能
2009-05-23 22:07 1452转载:http://www.jsfcentral.com/ar ... -
根据组件名字获取组件对象Component.getInstance(String name)
2009-05-05 22:02 4041Component.getInstance(String ... -
components.xml 配置seam组件
2009-04-29 12:21 2417components.xml 的配置采用反射机制来实现,组件类 ... -
下拉框的国际化
2009-04-22 17:32 2111<f:selectItem itemLabel=&quo ...
相关推荐
- 将主体内容存储到变量:`<c:set var="varName" scope="{page|request|session|application}">主体内容</c:set>` - 将值存储到对象属性:`<c:set value="value" target="target" property="propertyName"/>` - ...
### Web应用开发技术与JSP应用开发技术复习要点 ...通过以上内容的介绍,我们可以更深入地理解JSP技术的基本概念、运行机制、环境配置及常用标签和动作元素的应用,这对于Web应用开发来说至关重要。
- **解释**:`@Scope`注解用于设置组件的生命周期范围,常见的范围包括`EVENT`、`PAGE`、`CONVERSATION`、`SESSION`、`BUSINESS_PROCESS`、`APPLICATION`、`STATELESS`等。这些范围的选择会直接影响到组件实例的创建...
在JavaWeb开发过程中,有多个核心对象被频繁地使用,它们分别是:`pageContext`, `request`, `response`, `session`, `application`, `config`, `exception`, `page`, 和 `out`。 ##### 1. pageContext (javax....
- **Page Scope**:`pageScope` - **Request Scope**:`requestScope` - **Session Scope**:`sessionScope` - **Application Scope**:`applicationScope` #### 二、EL表达式的用途 EL表达式广泛应用于JSP页面中...
### EL表达式与JSP JSTL标签库的总结 ...<jsp:useBean id="a0" class="com.bupuxiang.dissertionseven2.el.A" scope="page"> <jsp:useBean id="a1" class="com.bupuxiang.dissertionseven2.el.A" scope="request"> ...
19. 在JSP中为内置对象定义了四种作用范围,即Application Scope、Session Scope、Page Scope和Request Scope四个作用范围。 20. JavaBean是一个java类,必须有一个无参的构造方法。 21. 在JSP中使用JavaBean的...
此外,还可以通过`scope`属性指定变量的作用域,如`page`, `request`, `session`, `application`。例如: ```jsp <c:set var="username" value="bzc" scope="session" /> ``` 还可以设置对象属性,如: ```jsp ...
- **示例**: `<jsp:useBean id="beanName" class="package.class" scope="page|request|session|application" />` - **说明**: 该标签允许开发者在页面中定义和使用JavaBeans,这对于封装复杂逻辑非常有用。 5. ...
* 范围(Scope):范围是指远程Bean的生命周期,例如application、session、request、page等。 ### dwr.xml 文件结构 dwr.xml 文件的结构主要包括两个部分:<allow> 和 。 * <allow>:allow 段落里面定义了DWR...
- `scope` 属性用于指定变量的作用域,可以是`page`, `request`, `session` 或 `application`。 3. **** - 用途:用于从指定的JSP范围内移除指定的变量。 - 示例: ```jsp <c:remove var="name" scope=...
- 通过`isELIgnored`属性可以控制EL是否启用,`<%@ page isELIgnored="true"%>`,默认在JSP 2.0及更高版本中是启用的。 - EL支持逻辑表达式(如`${true and false}`)、关系表达式(如`${5>6}`)和算术表达式(如`${...
- **命令格式**:`gpresult [/scope {user | computer}] [/r] [/v] [/z]` - **用途**:此命令用于显示用户或计算机的组策略结果。 #### 39. GRANTABL - 显示或修改文件或目录的 ACL - **命令格式**:`icacls [path]...
<jsp:useBean id="myBean" scope="page" class="com.example.MyBean" /> ``` ****示例: ```jsp ``` 综上所述,本文详细介绍了JSP的关键概念和技术细节,包括JSP的运行原理、环境配置、指令与动作元素等,这对于...
- `scope`:变量的作用域,默认为`page`。 示例: ```html ${oneString} ``` 该示例将创建一个名为`oneString`的变量,值为`This is Andy`,并在页面上显示。 #### 五、总结 JSTL的Core标签库为JSP开发者...
#### JSTL定义及特性 JSTL(JSP Standard Tag Library,JSP标准标签库)是Apache Jakarta项目的一部分,它是一个开源的JSP标签库,旨在提高JSP页面的开发效率和可维护性。JSTL只能在支持JSP 1.2和Servlet 2.3规范的...
- `scope`:设置变量的作用域,可以是 `page`, `request`, `session`, `application`。 示例: ```jsp <c:set var="test2" scope="session" value="${test.testinfo}" /> ``` ##### `<c:remove>` - **用途**:...