`
ww2
  • 浏览: 423984 次
  • 性别: 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组件)、事件驱动模型等...

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

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

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

    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(JavaServer Faces)学习手册

    ### JSF(JavaServer Faces)学习手册 #### 第一部分 JSF基础篇 ##### 第1章 JSF技术基础 **1.1 Servlet** Servlet是一种用Java编写的Web组件,其主要功能是生成动态内容。Servlet驻留在应用服务器端,并由Web容器...

    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