基于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 Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架...
EL是一种轻量级的脚本语言,允许在JSP页面中引用Java对象和方法。 **参数传递** 在JSF中主要有两种方式: 1. **请求参数传递**:这是最基本的传递方式,通过在URL中添加查询参数或者在表单提交时包含参数。例如,...
**JSF(JavaServer Faces)** 是一种Java平台上的用户界面组件框架,用于构建Web应用程序。它提供了一种声明式的方式来创建用户界面,允许开发者使用HTML、XML(XHTML)和自定义标签来构建交互式的网页。JSF的核心...
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
在JavaServer Faces (JSF)框架中,参数传递是一个关键的操作,它允许数据在不同页面之间或者组件之间流动。JSF 提供了多种方法来处理参数传递,包括使用`<f:param>`标签、Managed Bean的属性绑定以及共享Request ...
JSF为JAVA的 Web应用用户界面的开发人员提供了标准的编程接口、丰富可扩展的UI组件库(一个核心的JSP标记库用来处理事件、执行验证以及其他非UI相关的操作和一个标准的HTML 标记库来表示 UI组件)、事件驱动模型等...
7. ** Managed Beans**:在JSF中,Managed Beans是用于存储和管理业务逻辑的对象,它们可以通过EL表达式在视图和控制器之间传递数据。 8. **Facelets**:Facelets是JSF 1.2及更高版本推荐的视图定义技术,它比JSP更...
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 jsp jsf fx java jsp jsf fx java jsp jsf fx
在JSF(JavaServer Faces)框架中,参数传递是页面交互和数据管理的重要部分。本文将详细介绍JSF中如何传递参数,主要关注使用`f:param`标签的方式。 首先,我们来看一下`f:param`标签的基本用法。在JSF中,`f:...
JSF Expression Language 是一种轻量级的脚本语言,用于在JSF应用中访问和操作Java对象。EL允许你在JSP或XHTML页面中直接引用JavaBean属性,执行基本的算术和逻辑运算,以及调用方法。 #### 1.6 国际化信息 JSF ...
JavaServer Faces(JSF)是Java平台上的一种用于构建用户界面的服务器端框架,它主要用于开发Web应用程序。这个“JSF ppt课件”很显然是为了帮助学习者深入理解JSF的核心概念和技术。以下是对JSF的一些关键知识点的...
jsf 视频 java faces jsf 视频 java faces jsf 视频 java faces
- **创建JavaBean**:定义Java类来存储和处理业务数据,它们可以被JSF组件引用。 - **部署和测试**:将项目部署到应用服务器,通过浏览器访问JSF页面进行测试。 5. **扩展与兼容性** - JSF 1.2虽然较旧,但仍然...
Java Server Faces(JSF)是Java平台上的一种用于构建用户界面的服务器端Web应用程序框架。它遵循Model-View-Controller(MVC)设计模式,简化了开发过程,提供了丰富的组件库和事件处理机制。本篇文章将通过一个最...