`
yourenyouyu2008
  • 浏览: 282084 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

page scope介绍及用途

    博客分类:
  • seam
阅读更多

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 {

 

分享到:
评论
3 楼 lee4321 2010-07-05  
多谢大牛,我在看看,在问下您用过struts嘛,jsf2.0版扩充的myfaces跟新的struct对比怎么样啊
2 楼 yourenyouyu2008 2010-06-08  
你先了解下el的基础知识,jsf1.2用到了下面的几个Resolver
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了。
1 楼 lee4321 2010-06-06  
求教,jsf里面managebean通过什么来管理的啊?
还有ELContext为何通过表达式就可以取出管理bean了??

相关推荐

    page_scope

    李兴华java web开发实战经典课程源代码 page

    page_scope02

    李兴华java web开发实战经典课程源代码 page_scope

    JAVA集成PageOffice的最简单示例

    强大的Word、Excel 动态数据填充及格式控制功能。服务器端无需安装Office软件,根据数据库数据通过PageOffice动态赋值即可完成复杂的具有严谨规范格式的文档生成任务,并且可以在浏览器页面里查看、编辑生成的文档。...

    jsp指令,page指令简单介绍

    JSP指令,page指令,errorPage和isErrorPage等属性的介绍。

    开发工具 Page 开发工具 Page

    开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发工具 Page开发...

    在线编辑office的神器PageOffice For ASP.NET

    现在梦想已经成真,想在网页上显示编辑Word、Excel文档并且调用微软Office的强大功能,就直接从工具箱拖动一个PageOffice控件到Web页面上就可以了,就和使用常用的TextBox控件一样简单方便。 PageOffice是什么? ...

    pageoffice.js

    pageoffice.js

    pageoffice帮助文档

    pageoffice控件帮助文档,使用pageoffice 时调用客户端js 方法说明

    Office在线编辑预览PageOffice

    PageOffice支持在JSP页面中预览和编辑word,ppt,excel等PageOffice支持在JSP页面中预览和编辑word,ppt,excel等PageOffice支持在JSP页面中预览和编辑word,ppt,excel等PageOffice支持在JSP页面中预览和编辑word,ppt,...

    SpringBoot集成PageOffice

    SpringBoot集成PageOffice

    Absolute C++

    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.exe

    pageoffice客户端控件

    Spring Boot 集成PageOffice(4.3.0.2)

    演示Spring Boot 下如何集成PageOffice实现在线处理office文件的效果。此示例基于PageOffice4.3.0.2版本(此版本之后的PageOffice都是可以支持Springboot) 开发环境:jdk1.8、Eclipse、Sping Boot + Thymeleaf框架

    PageOffice3.4.0.2

    PageOffice 版本号3.4.0.2 带序列号 可用于在线打开并编辑文档

    MasterPage, Page, UserControl

    MasterPage, Page, UserControl 如何互动,传值的例子。网上找到的

    PageOffice_4.6.0.4_Java.zip

    PageOffice_4.6.0.4_Java.zip

    page翻页php方法

    page翻页php方法,简单易懂,希望大家多多支持

    四个作用于区别

    pageScope、requestScope、sessionScope、applicationScope区别

Global site tag (gtag.js) - Google Analytics