`
yourenyouyu2008
  • 浏览: 287622 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jsf动态页面

    博客分类:
  • jsf
 
阅读更多

所谓动态页面就是指页面上的字段是不固定的,比如常见的动态参数,根据不同的情况同一个页面会显示不同的字段。

一般来说是将动态参数以key value的形式存储在数据库中,动态参数由两部分组成,1)动态参数定义,即指定情况下应该有哪些参数,2)动态参数值存储,即将用户输入的value与key对应起来存储和显示。

 

动态参数定义需要code,name,可选择列表

public class ReportParameterDefinition

    private String code;

    private String name;//用来显示

//Eg: 1;Int., 2;Dom, 3;Both

    private String optionItems;

 

动态参数值

public class ReportParameter

    private String code;//与ReportParameterDefinition的code对应

    private String value;//用户输入的值

 

页面上通过 c标签来动态生成jsf标签。

c标签本质上不是jsf标签,他不会生成对应的jsf组件,但他可以用来控制jsf组件的生成,c:forEach里面的jsf组件相当于直接在页面上写了多遍jsf组件,不同于ui:Repeat,ui:Repeat本身是jsf组件,他里面的其他jsf组件只有一份,不会根据循环的遍数生成多个jsf组件。

c标签被faceslet重新定义,用来动态生成jsf组件,每次请求的第6阶段会首先执行c标签来更新jsf组件树中的组件

<c:if
  test="#{report.globalReport.reportDefinition.parameterDefinitions !=null}">
  <c:forEach
   items="#{report.globalReport.reportDefinition.parameterDefinitions}"
   var="row1">
   <h:panelGroup>
    <h:outputText value="#{row1.name}" />
   </h:panelGroup>
   <h:panelGroup>
     <c:if test="#{!row1.options}">
      <h:inputText value="#{report.reportParameterMap[row1.code].valueName}"
       label="#{row1.name}" required="true">
       <a4j:support event="onblur" ajaxSingle="true"
        reRender="param_#{row1.code}_Decorate" />
      </h:inputText>
     </c:if>
     <c:if test="#{row1.options}">
      <rich:comboBox
       value="#{report.reportParameterMap[row1.code].value}"
       label="#{row1.name}" enableManualInput="false" required="true">
       <c:forEach items="#{row1.optionItems}" var="row2">
        <f:selectItem itemLabel="#{row2.key}" itemValue="#{row2.value}" />
       </c:forEach>
      </rich:comboBox>
     </c:if> 
   </h:panelGroup>

  </c:forEach>
 </c:if>

分享到:
评论

相关推荐

    jsf动态创建表单控件实例.

    在JSF中,动态创建表单控件是一项强大的功能,它允许开发者在运行时根据需求生成不同的用户输入元素,提高了代码的灵活性和可扩展性。下面我们将详细探讨JSF动态创建表单控件的概念、实现方法以及相关的实例。 1. *...

    用jsf页面动态创建表格

    ### 使用JSF页面动态创建表格 #### 背景与目的 在开发Web应用程序时,经常需要根据不同的数据集或用户操作动态生成表格。JavaServer Faces(简称JSF)是一种用于构建服务器端Java应用程序的标准技术,它允许开发者...

    JSF 动态 数据的三级级联示例操作

    在JavaServer Faces (JSF) 框架中,动态数据处理是常见的需求,尤其是在构建复杂的Web应用程序时。本文将详细讲解如何通过JSF来实现一个动态的三级级联下拉框,这在多层级关联的数据展示中非常有用,比如地区、城市...

    第2部分-动态JSF表单

    1. **CSS(层叠样式表)**:CSS是网页设计的关键组成部分,它定义了页面的布局和视觉样式。在动态JSF表单中,CSS用于美化和组织用户界面,使表单看起来更加专业且用户友好。通过选择器、类和ID,我们可以精确地控制...

    JSF 动态生成网页例子源代码

    JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag)...

    jsf 动态分页 带jar包 解压直接导入eclipse即可,方便学习~

    2. **配置页面**:在JSF页面中,导入分页组件库,如`&lt;h:head&gt;&lt;meta name="myfaces.extensions.paginator" content="true"/&gt;&lt;/h:head&gt;`。 3. **使用分页组件**:在数据表格下方添加`&lt;p:paginator/&gt;`,并根据需求设置...

    jsf动态创建按钮绑定

    3. **动态生成组件**:在JSF页面(通常是`.xhtml`文件)中,我们可以在JSF EL中使用`c:forEach`或`ui:repeat`等迭代标签,遍历Managed Bean中的按钮数据,为每个元素动态生成一个`h:commandButton`组件。每个按钮的...

    JSF网页应用开发购物车

    **Ajax** 支持也常常在JSF中用于创建更动态的用户体验。例如,使用`p:ajax` 或 `f:ajax` 标签,我们可以实现购物车内容的异步更新,而无需刷新整个页面。 最后,`ch6_editanddelete` 文件名暗示了购物车应用可能...

    jsf第一个例子 jsf架包 jsf实例

    JSF提供了组件库,使得创建动态、交互式的网页变得简单。 在“jsf第一个例子”中,我们通常会遇到以下关键概念: 1. **JSF生命周期**:JSF有六个主要阶段,包括恢复视图、应用请求值、处理验证、更新模型值、调用...

    第1部分-增强JSF页面的外观

    综上所述,这个学习资源涵盖了通过CSS美化JSF页面,利用JavaScript和JSF的Ajax功能实现动态交互的关键技术。通过深入理解和实践这些知识点,开发者可以创建出更吸引人、更高效的Web应用程序,提升用户的在线体验。

    JSF入门+JSF web实战+JSF2

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

    jsf页面

    这篇博客文章(虽然链接不可用)可能探讨了如何使用JSF来创建和管理Web页面。JSF是一个组件化的MVC(模型-视图-控制器)框架,允许开发者通过拖放组件的方式构建页面,并通过后端Java代码处理业务逻辑。 1. **JSF...

    JSF Java Server Faces (JSF)框架

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

    JSF包,jsf包,JSF包,jsf包

    这些组件可以通过属性和绑定来配置,允许开发者在页面上动态地创建和操作用户界面。 **事件处理**:JSF支持事件处理机制,允许组件之间通信。当用户触发一个事件(如点击按钮),对应的事件处理器会被调用,这使得...

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

    JavaServer Faces (JSF) 是一个用于构建用户界面的Java Web框架,它简化了创建和维护Web应用程序的复杂性。JSF的核心理念是提供一种组件化的编程模型,将UI元素与业务逻辑分离,使得开发者可以专注于应用的逻辑部分...

    jsf入门列子和jsf与Tiles结合

    具体集成步骤包括:引入Tiles的依赖库,配置`web.xml`以启用Tiles,编写Tiles的定义文件(如`tiles-defs.xml`),然后在JSF页面中引用Tiles组件。通过这种方式,开发者可以创建可复用的页面片段,并在多个JSF视图...

    JSF中文教程jsf

    这些组件可以通过XML(Facelets)或JSP页面进行声明,并且可以组合成更复杂的视图结构。**Facelets** 是JSF推荐的视图定义语言,它比JSP更强大,更易于维护。 **数据绑定** 是JSF的一个关键特性,它将组件的值与...

    jsf分页 jsf分页 jsf分页

    在JavaServer Faces (JSF)框架中,分页是一种常用的技术,用于处理大量数据时提供更好的用户体验。当数据集过大,一次性加载所有记录到页面上会导致性能下降且用户界面响应变慢。通过分页,我们可以将数据分成多个...

    JSF(动态操作组件的例子)

    10. **Ajax支持**:JSF 2.0及更高版本引入了Ajax功能,允许部分页面更新,这对于动态操作组件来说尤为重要,因为可以无需刷新整个页面就能改变或添加组件。 通过学习这个"JSF(动态操作组件的例子)",开发者可以深入...

    JSF文件下载实现

    在JSF页面中,可以利用`&lt;h:outputLink&gt;`组件结合JSP页面来实现文件下载。`&lt;h:outputLink&gt;`的`value`属性指向JSP页面,通过传递参数(如`filename`)来指定要下载的文件。JSP页面接收这些参数并调用下载方法。 总之...

Global site tag (gtag.js) - Google Analytics