`

JSF 一些应用

    博客分类:
  • Jsf
阅读更多
JSF 的生命周期

Restore View(恢复视图)
Apply Request Values(应用请求值)
Process Validations(处理验证)
Update Model Values(更新模型值)
Invoke Application(调用应用程序)
Render Response(呈现响应)



在调用ValueChangeListener 方法后如何重新装载页面?
在 ValueChangeListener的最后,调用  FacesContext.getCurrentInstance().renderResponse()




jsf中action、actionlistener、valueChangeListener的区别
事件      | 校验   |                       参数                             |             事件产生                                                       |                  页面跳转
action                  | ok       | 无参数,不传入当前控件,有返回值    |当铵钮被单击时产生事件.提交表单                       |返回页面---根据配置文件跳转
actionListener       | ok       |             传入当前控件,无返回值         |当铵钮被单击时产生事件.提交表单                     | 返回本页面
ValueChangeListener    | ok       |          传入当前控件,无返回值         |不提交表单(需指定其onchange/onclick="submit"才自动提交表单    |返回本页面

action()处理的是业务逻辑.实际上JSF会自动产生一个"预设的ActionListener"来处理事件,并根据其返回值决定页面跳转.第五阶段:调用应用执行会影响到页面间的导航(navigation)。主要处理一些业务逻辑并返回几个业务逻辑结果(String类型),JSF的导航系统将会根据这个来选择恰当的下一个页面. 会提交表单.

actionListener(ActionEvent e)处理页面上组件的"监听事件".第五阶段:调用应用执行
          不会影响到导航.主要操作当前页面内的组件,或者是进行一些业务模型上的改变,或者是修改backing bean(托管Bean)的属性等,并不会出现在页面间的跳转。会提交表单.

valueChangeListener(ValueChangeEvent event)处理页面上组件值变化的"监听事件","第三阶段:验证请求值"执行


ActionListener (事件监听器)是用于解决只影响用户界面的事件
        特别地,在beans的form数据被加载和触发验证前被调用
        用immediate=“true”指明这个行为不触发验证
        在监听器调用后,会重新显示表单
        不应用导航规则,不重定向页面
Action
        隶属于按钮、超链接和图形映射控件
        自动提交对应表单
ValueChangeListener
        隶属于单选框、组合框、列表框、复选框、文本框等控件
        需要用onclick=“submit()”或onchange=“submit()”的方式提交表单





注:actionListener比Action先执行


首页介绍JSF  如何配置多个文件
web.xml配置:
<context-param> <param-name>javax.faces.CONFIG_FILES</param-name>      <param-value>/WEB-INF/navigation.xml,/WEB-INF/beans.xml</param-value></context-param>
跟Struts 差不多 只不过  这里的参数是<param>javax.faces.CONFIG-FILES</param>

JSF 如何获取工程 路径
#{facesContext.externalContext.requestContextPath}

获取表单的两种方法

第一种:

1.如在你的页面中有 <input   type= "hidden "   name= "classid "   value= "1 ">
注意要写在form中,并且要用name而不是id.
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get( "classid ")可以得到。  

2.
<h:form   id= "f ">
<input   type= "hidden "   id= "classid "   value= "1 ">
</h:form>
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get( "f:classid ")可以得到。

3.使用JSF自带的控件,则和2是一样的访问方法

以上方法就可以了,写id的时候,jsf会把form的id加进去 变成 formId:componentId 的格式

第二种:

就是通过findComponent方法获得控件实例,然后通过getValue方法获得值
HtmlInputText    text = (HtmlInputText) this.findComponent(this.FORM + ":"+ ENERGY_COMSUPTION_PREFIX + id);
String value = text.getValue().toString();

public UIComponent findComponent(String name) {

  // 不能使用静态变量view保持当前的viewroot,因为每次操作之后的viewroot都是不一样的
  ViewRoot view = FacesContext.getCurrentInstance().getViewRoot();

  return view.findComponent(name);
}

需要注意的是 不能使用静态变量view保持当前的viewroot,因为每次操作之后的viewroot都是不一样的。

对比以上两种方法,第一种简单方便,但只适合于取值操作。第二种可操控的范围和能力更大,不仅可以取值还可以设置和获得所有属性。


0
0
分享到:
评论

相关推荐

    JSF Web 应用开发实战源码

    1. **JSF生命周期**:JSF应用的每个请求都会经历一系列的阶段,包括恢复视图、应用请求值、处理验证、更新模型值、调用应用逻辑和渲染响应。理解这些阶段对于调试和优化JSF应用至关重要。 2. **组件模型**:JSF的...

    JSF标签应用实例

    这个压缩包文件"myfaces-example-simple-1.1.7-SNAPSHOT"包含了一个JSF的实际应用示例,适合初学者和开发者了解JSF标签的使用方法和JSF应用的部署流程。 首先,我们要理解JSF的核心概念:组件、事件和渲染。JSF中的...

    JSF网页应用开发购物车

    **JSF(JavaServer Faces)** 是一种Java平台上的用户界面框架,用于构建Web应用程序。它简化了前端和后端的交互,通过组件模型、事件处理和生命周期管理提供了丰富的功能。在本项目中,我们将利用JSF来创建一个功能...

    JSF 一些经验 .doc

    在使用 JavaServer Faces (JSF) 开发应用时,异常处理是非常重要的一个环节。原生的 JSF 异常处理机制较为简单,无法提供足够的信息来帮助开发者定位问题。为了解决这一问题,推荐使用 Seam 框架进行集成。 Seam 是...

    jsf 1.2 jar 应用包

    **JSF 1.2 Jar 应用包详解** JavaServer Faces (JSF) 是一个由Sun Microsystems(现已被Oracle收购)开发的Java EE组件模型和用户界面框架,用于构建和呈现Web应用程序。JSF 1.2是该框架的一个早期版本,发布于2006...

    netBeans中导入已有的JSF应用程序

    NetBeans是一款功能强大的集成开发环境(IDE),它支持多种编程语言,包括Java,自然也支持JSF应用程序的开发。这篇博文"在NetBeans中导入已有的JSF应用程序"提供了关于如何在NetBeans环境中整合和管理已有的JSF项目...

    JSF.rar_JSF WEB应用开发

    **JSF(JavaServer Faces)** 是一种基于Java的服务器端UI框架,由Sun Microsystems(后被Oracle收购)开发,用于构建Web应用程序。JSF的核心理念是提供一个组件化的、事件驱动的用户界面模型,使得开发者可以更方便...

    NetBeans中JSF应用开发

    首先,创建JSF应用。在NetBeans中,可以选择“File”&gt;“New Project”(Ctrl-Shift-N),然后在“Web”目录下选择“Web Application”,点击“Next”。接下来,为项目命名,例如“jAstrologer”,并指定项目位置。选择...

    JSF入门+JSF web实战+JSF2

    书中会介绍如何创建一个简单的JSF应用程序,设置开发环境,以及如何使用JSF的UI组件来构建动态网页。此外,还会讲解EL(Expression Language)和 Managed Beans,这两个是JSF中用于数据绑定和业务逻辑处理的关键技术...

    JSF与Facelets应用程序

    **Facelets** 是JSF的一种视图层技术,它取代了早期的JSP(JavaServer Pages)作为JSF应用的标准视图表示。Facelets以其XML为基础的语法和模板结构,提供了更清晰、更易于维护的视图创建方式。它支持组件重用,便于...

    JSF第一个应用

    在这个“JSF第一个应用”中,我们将深入探讨如何创建一个基本的JSF应用。 ### 一、JSF框架概述 JSF框架提供了一系列的UI组件和事件处理机制,允许开发者使用声明式的方式构建用户界面。它遵循MVC(Model-View-...

    JSF应用程序的结构

    在JSF应用程序的结构中,有几个关键概念值得深入理解: 1. **事件驱动型组件模型**:JSF的核心是组件模型,其中UI组件(如按钮、输入字段)与事件和监听器相结合。当用户交互(如点击按钮)发生时,会触发特定的...

    介绍JSF框架的PPT

    早期版本的JSF在与JSP集成时存在一些问题,例如在处理特定标签时可能会导致意外的结果。然而,随着版本的发展,这些问题得到了有效的解决。例如,JSF 1.2版本中已经彻底解决了这些早期的集成问题,确保了组件之间的...

    jsf开发应用程序.pdf

    ### JSF技术与WebSphere Studio V5.1.1中的应用 #### 一、JSF技术简介 JavaServer Faces (JSF) 是一种基于Java的标准技术,用于构建企业级的Web应用程序。它提供了丰富的功能来简化开发过程,尤其是处理用户界面...

    利用NetBeans IDE构建JSF应用

    ### 利用NetBeans IDE构建JSF应用 #### 一、引言 在J2EE技术的三层架构软件开发过程中,SSH(Struts + Spring + Hibernate)架构长期以来一直是程序员们的首选。然而,随着JSF(JavaServer Faces)的出现和发展,...

    JSF Java Server Faces (JSF)框架

    JSF是一种用于构建Java ... 包含JSP页面的JSF应用程序也使用由为了表现UI组件和在页面上的其他对象的JSF技术而定义的标准的tag库。 Java Server Faces技术的重要开发框架 sun-ri、myfaces、icefaces、richfaces、seam

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

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

    JSF中文教程jsf

    **JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,用于构建Web应用程序。它简化了开发人员创建交互式、数据驱动的Web界面的过程。JSF提供了一个组件模型,允许开发者通过拖放组件的方式来构建用户界面...

    JSF+SSH开发应用实例

    JSF(JavaServer Faces)是一种Java技术,用于构建交互式用户界面,特别是在Web应用程序中。SSH,即Spring、Struts和Hibernate的组合,是Java开发中的一个流行框架栈,用于处理MVC(Model-View-Controller)架构。在...

    JSF的工作方式 JSF架构 JSF模型 JSF事件类型

    为了配置JSF应用程序,开发者需要创建`faces-config.xml`配置文件,其中包含: - **管理Bean配置**:定义Bean的名称、类以及作用域(例如,请求、会话、应用范围)。 - **导航规则**:定义用户操作与页面跳转之间的...

Global site tag (gtag.js) - Google Analytics