`
lichangwei
  • 浏览: 75786 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

托管 Bean 页面传值的使用方法和技巧(2)

    博客分类:
  • jsf
阅读更多
MyBean1.java:

package mypackage;
import javax.faces.context.FacesContext;
public class MyBean1 
{    
    // Using VariableResolver. NOTE: this is deprecated since JSF 1.2!   
    public void action1() 
    {       
        FacesContext context = FacesContext.getCurrentInstance();       
        MyBean2 myBean2 = (MyBean2) context.getApplication().getVariableResolver().resolveVariable(context, "myBean2");
        myBean2.getText().setValue("action1");   
    }   
    
    // Using ValueBinding. NOTE: this is deprecated since JSF 1.2!   
    public void action2() 
    {       
        FacesContext context = FacesContext.getCurrentInstance(); 
        MyBean2 myBean2 = (MyBean2) context.getApplication().createValueBinding("#{myBean2}").getValue(context);       
        myBean2.getText().setValue("action2");   
    }   
    
    // Using ELResolver. NOTE: this is implemented since JSF 1.2!  
    public void action3() 
    {       
        FacesContext context = FacesContext.getCurrentInstance();
        MyBean2 myBean2 = (MyBean2) context.getELContext().getELResolver().getValue(context.getELContext(), null, "myBean2");
        myBean2.getText().setValue("action3");
    }   
    
    // Using ValueExpression. NOTE: this is implemented since JSF 1.2!   
    public void action4() 
    {       
        FacesContext context = FacesContext.getCurrentInstance();
        MyBean2 myBean2 = (MyBean2) context.getApplication().getExpressionFactory().createValueExpression(context.getELContext(), "#{myBean2}", MyBean2.class).getValue(context.getELContext());
        myBean2.getText().setValue("action4");   
    }  
    
    // Using RequestMap. NOTE: myBean2 should be request scoped!   
    public void action5() 
    {       
        Object object = FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("myBean2");
        // This only works if myBean2 is request scoped.       
        if (object != null) 
        {           
            MyBean2 myBean2 = (MyBean2) object;
            myBean2.getText().setValue("action5");       
        }   
    }   
    
    // Using SessionMap. NOTE: myBean2 should be session scoped!   
    public void action6() 
    ...{       
        Object object =  FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("myBean2");
        // This only works if myBean2 is session scoped.       
        if (object != null) 
        {         
            MyBean2 myBean2 = (MyBean2) object;
            myBean2.getText().setValue("action6"); 
        }   
    }

}

MyBean2.java:

package mypackage;
import javax.faces.component.html.HtmlOutputText;
public class MyBean2 
{   
    private HtmlOutputText text;   
    
    public HtmlOutputText getText() 
    {       
        return text;   
    }   
    
    public void setText(HtmlOutputText text) 
    {       
        this.text = text;   
    }
}

 

分享到:
评论

相关推荐

    第9章 JSF的托管Bean和国际化课件及源程序

    总结来说,本章内容将涵盖JSF托管Bean的基础知识,包括如何创建、声明和使用Bean,以及如何在Bean中实现业务逻辑。同时,还会讲解如何实现国际化,包括资源包的创建和使用,以及在JSF应用中显示本地化文本的方法。...

    GitHub托管HTML页面

    设置远程仓库是指将我们的仓库地址和名字添加到 GitHub 托管的仓库中。在这里,我们可以点击“Settings”按钮,并添加我们的仓库地址和名字。添加成功后,我们可以点击“Save”按钮,关闭设置页面。 六、访问页面 ...

    非托管代码回调方法的实现

    2. **固定指针(Fixed Pointer)**:为了将托管委托转换为非托管函数指针,我们需要使用unsafe上下文和fixed关键字。这允许我们获取委托的内存地址,以便可以将其作为非托管函数的参数。 3. **Marshaling(封送处理...

    超详细解析托管代码与非托管代码以及dll调用.zip_托管代码_非托管

    托管代码与非托管代码是编程领域中的两个重要概念,它们主要与.NET框架和C++等语言的使用密切相关。本文将深入探讨这两个概念,以及DLL动态链接库调用...理解这些概念和技巧,对于提升软件开发效率和质量具有重要意义。

    Axis传值和复杂对象

    【标题】"Axis传值和复杂对象"涉及的是在Web服务开发中,使用Apache Axis框架进行数据传递,特别是处理复杂对象的场景。Apache Axis是一个开源的Web服务工具包,它允许开发者创建、部署和调用Web服务。在这个场景中...

    托管 vs 非托管

    托管与非托管代码是编程领域中的两个重要概念,主要涉及.NET框架和C++等语言的使用。这篇文章将深入探讨这两者的差异,以及它们在实际开发中的应用。 托管代码(Managed Code)是指能够在.NET Framework的公共语言...

    Fragment的传值问题

    本文总结了Fragment在不同情况下的传值方法,包括不同Activity下的Fragment的传值,相同Acitvity托管下不同Fragment的传值。同一界面不同Fragment传值并实时变化的情况。了解了这些,基本上Fragment的通信就不会再有...

    非托管C++调用C#的dll

    知识点2:托管C++和非托管C++的区别 在C++中,有两种类型的代码:托管C++和非托管C++。托管C++是指使用C++/CLI编译器编译的代码,它可以与C#代码集成,并且可以使用CLR的功能。非托管C++是指使用传统的C++编译器...

    托管代码机制(很使用)

    综上所述,托管代码机制不仅极大地提升了应用程序的性能和安全性,而且还简化了开发过程,使开发者能够更专注于业务逻辑而非底层技术细节。对于希望充分利用.NET框架的强大功能的开发者来说,了解并掌握托管代码机制...

    使用托管C++粘合C#和C++代码.pdf

    mgClass类的属性 getter 和 setter 方法中,我们使用了托管C++的语法,例如使用gcnew关键字来创建托管字符串对象,并使用PtrToStringChars函数来将托管字符串对象转换为非托管字符串。 在使用托管C++将C#和C++代码...

    皮托管使用说明 皮托管使用说明

    根据其设计和应用场合的不同,皮托管分为标准型(L型)和S型两种类型,各有其独特的使用方法和适用范围。本文将详细介绍这两种皮托管的工作原理、使用方法以及流速计算公式,以供相关领域的技术人员参考。 L型皮...

    非托管C++委托实现

    10. **事件模型**:非托管C++中没有内置的事件模型,但可以通过委托类实现类似的功能,例如添加订阅和取消订阅的方法,以支持事件的发布和接收。 通过上述知识点的综合运用,非托管C++环境下的委托实现可以提供一种...

    关于托管C++和非托管C++各种字符串类型的转换

    本文将详细介绍托管C++(Managed C++)与非托管C++(Unmanaged C++)之间各种字符串类型转换的方法与技巧。虽然从表面上看这些转换操作似乎很简单,但实际上涉及到的技术细节和背景知识相当丰富。通过本文的学习,...

    非托管字符串和托管字符串的转换

    2. **IntPtr 和 Marshal.PtrToStringAnsi/UTF8/UniCode**:可以将托管字符串的引用转换为`IntPtr`,然后使用`Marshal.PtrToStringAnsi/UTF8/Unicode`方法获取非托管字符串。这种方法适用于已知字符串编码的情况。 3...

    flux-jsf:Flux JSF 2 托管 Bean 示例

    Flux JSF 2 托管 Bean 示例 Flux 可以实现为 JSF 2 Managed bean,它允许用户从他们的 UI 组件调度或管理工作流。 将flux.jar 部署到您的本地maven 存储库 mvn install:install-file -DgroupId=flux -DartifactId=...

    纯C# 托管与非托管DLL注入

    之后,可以使用`Assembly.Load`或`Assembly.LoadFrom`方法加载托管DLL,并执行其中的方法。 四、非托管DLL注入 非托管DLL注入相对简单,因为它们可以直接在目标进程中执行。只需按照上述步骤加载DLL并执行即可。但...

    使用托管C++粘合C#和C++代码

    托管C++是微软.NET框架提供的一种特性,它允许开发者在.NET环境中使用C++语言,同时能够无缝地与C#和其他.NET语言交互。这种技术的核心在于,托管C++编译后的代码能够理解并遵循.NET框架的规则,比如垃圾回收、类型...

    c#调用非托管dll

    C# 调用非托管 DLL 是指在 C# 程序中使用非托管动态链接库(DLL)的方法。非托管 DLL 是指使用 C 或 C++ 编写的动态链接库,而不是使用 .NET 框架编写的 DLL。为了在 C# 中使用非托管 DLL,我们需要使用 DllImport ...

    JavaServer Faces完全参考手册(JSF:Complete Reference)

    - **直接声明List和Map为托管bean**:讨论了如何直接使用List和Map作为托管bean。 - **托管bean的相互依赖**:探讨了托管bean之间的相互依赖关系。 - **用EL设置托管属性**:解释了如何使用表达式语言(EL)来设置...

Global site tag (gtag.js) - Google Analytics