`
逆风的香1314
  • 浏览: 1416265 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【JSF心得】JAVA的对象传递是引用传递

阅读更多

基于jsf-component的portlet的构建通常需要了解一下几点
1. 所有的jsf-component都是单一实例的,也就是说在每一个session周期内,一个UI组件只存在一个实例
2 对于UI组件中的变量,对于不属于UI组件的对象(FTPClient),在UI对象构建初期通过构造函数传递,之后,无论这些对象在其他地方发生任何变化,UI中引用的仍然是该对象的实例。对于UI组件自己的对象(UIStringInput),如果用setXX方法对其赋值了,UI对象在encode的时候,引用的也是该对象的当前值。

public class UIFileForm extends UISimpleForm {
 static final public String SAVE_ACTION = "save";
 static final public String CANCEL_ACTION = "cancel";

 private FTPFile ftpFile_;
 private FTPClient ftpClient_;
 private UIStringInput nameInput_;
 private String fileName_;

 public UIFileForm(FTPClient ftp,ResourceBundle res) throws Exception {
  super("fileForm", "post", null);
  setId("UIFileForm");
  setClazz("UIFileForm");
  ftpClient_ = ftp;                    //引用外部对象          
                
  int idx = ftpFile_.getName().lastIndexOf("/");
  String fileName = ftpFile_.getName().substring(idx++);
  nameInput_ = new UIStringInput("name", fileName);

  add(
   new HeaderRow().add(
    new Cell(res.getString("header.edit-file")).addColspan("2")));
  add(
   new Row().add(new LabelCell(res.getString("label.file-name"))).add(
    new ComponentCell(this, nameInput_)));  //尽管这里是在构造函数里面,但是nameInput是对象,所有即使它的值变化了,encode的时候仍然得到的是变化后的值 
  add(
   new Row().add(
    new ListComponentCell()
     .add(
      new FormButton(
       res.getString("button.save"),
       SAVE_ACTION))
     .add(
      new FormButton(
       res.getString("button.cancel"),
       CANCEL_ACTION))
     .addColspan("2")
     .addAlign("center")));

  addActionListener(SaveActionListener.class, SAVE_ACTION);
  addActionListener(CancelActionListener.class, CANCEL_ACTION);
 }
 public void setFileName(String s) {
  fileName_ = s;
         int idx = ftpFile_.getName().lastIndexOf("/");
  String fileName = ftpFile_.getName().substring(idx++);
  nameInput_.setText(fileName);// 这里是重新改变值的地方
  
 }

分享到:
评论

相关推荐

    JSF Java Server Faces (JSF)框架

    JSF是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架...

    JSF中文教程+JSF参数传递方式

    EL是一种轻量级的脚本语言,允许在JSP页面中引用Java对象和方法。 **参数传递** 在JSF中主要有两种方式: 1. **请求参数传递**:这是最基本的传递方式,通过在URL中添加查询参数或者在表单提交时包含参数。例如,...

    各种jsf标签Java语言

    **JSF(JavaServer Faces)** 是一种Java平台上的用户界面组件框架,用于构建Web应用程序。它提供了一种声明式的方式来创建用户界面,允许开发者使用HTML、XML(XHTML)和自定义标签来构建交互式的网页。JSF的核心...

    JSF-Java-jar包

    JavaServer Faces(JSF)是Java平台上的一种用于构建用户界面的服务器端框架,它简化了创建Web应用程序的过程,特别是那些需要复杂用户交互的应用程序。在提供的压缩包中,有两个重要的jar文件:`jsf-api.jar`和`jsf...

    java+jsf+js

    java+jsf+js java+jsf+js java+jsf+js java+jsf+js java+jsf+js java+jsf+js java+jsf+js

    JSF参数传递doc

    在JavaServer Faces (JSF)框架中,参数传递是一个关键的操作,它允许数据在不同页面之间或者组件之间流动。JSF 提供了多种方法来处理参数传递,包括使用`<f:param>`标签、Managed Bean的属性绑定以及共享Request ...

    jsf教程 JSF为JAVA的 Web应用用户界面

    JSF为JAVA的 Web应用用户界面的开发人员提供了标准的编程接口、丰富可扩展的UI组件库(一个核心的JSP标记库用来处理事件、执行验证以及其他非UI相关的操作和一个标准的HTML 标记库来表示 UI组件)、事件驱动模型等...

    JSF(java server faces)开源框架的源代码

    7. ** Managed Beans**:在JSF中,Managed Beans是用于存储和管理业务逻辑的对象,它们可以通过EL表达式在视图和控制器之间传递数据。 8. **Facelets**:Facelets是JSF 1.2及更高版本推荐的视图定义技术,它比JSP更...

    Practical JSF in Java EE 8

    In a sense, this book teaches you to develop Java EE applications with JSF as user interface. It’s a book for Java enthusiasts. Knowledge about web technologies is helpful, but not required. For ...

    java java jsp jsf

    java jsp jsf fx java jsp jsf fx java jsp jsf fx

    jsf传递参数的说明

    在JSF(JavaServer Faces)框架中,参数传递是页面交互和数据管理的重要部分。本文将详细介绍JSF中如何传递参数,主要关注使用`f:param`标签的方式。 首先,我们来看一下`f:param`标签的基本用法。在JSF中,`f:...

    java JSF入门

    JSF Expression Language 是一种轻量级的脚本语言,用于在JSF应用中访问和操作Java对象。EL允许你在JSP或XHTML页面中直接引用JavaBean属性,执行基本的算术和逻辑运算,以及调用方法。 #### 1.6 国际化信息 JSF ...

    JSF ppt课件 java serve face

    JavaServer Faces(JSF)是Java平台上的一种用于构建用户界面的服务器端框架,它主要用于开发Web应用程序。这个“JSF ppt课件”很显然是为了帮助学习者深入理解JSF的核心概念和技术。以下是对JSF的一些关键知识点的...

    jsf视频jsf视频0

    jsf 视频 java faces jsf 视频 java faces jsf 视频 java faces

    jsf1.2 download javaserver faces

    - **创建JavaBean**:定义Java类来存储和处理业务数据,它们可以被JSF组件引用。 - **部署和测试**:将项目部署到应用服务器,通过浏览器访问JSF页面进行测试。 5. **扩展与兼容性** - JSF 1.2虽然较旧,但仍然...

    java JSF 最最简单的小例子

    Java Server Faces(JSF)是Java平台上的一种用于构建用户界面的服务器端Web应用程序框架。它遵循Model-View-Controller(MVC)设计模式,简化了开发过程,提供了丰富的组件库和事件处理机制。本篇文章将通过一个最...

Global site tag (gtag.js) - Google Analytics