所谓动态页面就是指页面上的字段是不固定的,比如常见的动态参数,根据不同的情况同一个页面会显示不同的字段。
一般来说是将动态参数以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>
分享到:
相关推荐
在java中的jsf页面上,动态生成表格
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag)...
第2部分-动态JSF表单(CSS、JavaScript和JSF联合打造 Ajax应用程序).zip
JSF是一种用于构建Java ... 包含JSP页面的JSF应用程序也使用由为了表现UI组件和在页面上的其他对象的JSF技术而定义的标准的tag库。 Java Server Faces技术的重要开发框架 sun-ri、myfaces、icefaces、richfaces、seam
用NetBeans做一个可以增加删除的购物车的JSF WEB应用
jsf 用户登陆界面
通过 JSF ,您可以在页面中轻松自如地使用 WEB 组件、捕获用户行为所产生的事件、执行验证、建立页面导航…,当使用支持JSF的开发工具来开发 JSF 应用的时候,一切将会变得异常简单,GUI方式拖放组件、修改组件属性...
使用JSF登录页面和DWR验证页面,回车直接登录
第1部分-增强JSF页面的外观(CSS、JavaScript和JSF联合打造 Ajax应用程序).zip
对于必须使用表格方式呈现的数据,JSF 的 <h:dataTable> 卷标协助您进行动态表格数据的输出。 o 简单的表格 o 表头, 表尾 o TableModel 类别 自订组件 JSF 让您可以自订组件,每个组件都是可替换的,这使得...
jsf页面上的客服浮动窗口
Pro JSF and HTML5 shows you how to leverage the full potential of JavaServer Faces (JSF) and HTML5. This book is for Java developers who aspire to build sophisticated, enterprise-grade web experiences...
一个简单的jsf登录效果,基本标签的使用,适用于jsf初学者,包括web.xml的配置和faces-config.xml的配置
目前网上罕见的JSF+iBATIS+MySQL示例代码,公司某软件项目所需而做的前期DEMO,只有两个Web页面,用户登录和用户列表,但已经能够说明JSF+iBATIS的典型应用方式。 MyEclipse6.5 项目工程文件,内含SQL建库指令。 ...
经典JSF网店模板开发学习经典JSF网店模板开发学习catalog
JSF API 帮你轻松搞定JSF!!!!
jsf 入门 网页版jsf 入门 网页版jsf 入门 网页版jsf 入门 网页版jsf 入门 网页版jsf 入门 网页版jsf 入门 网页版jsf 入门 网页版
jsf[静态]页面的级联下拉框的示例,实现了三级级联。多级级联可以模仿三级级联示例。可用于实现过滤数据等等。查看效果时,访问路径需指定到页面。
JSF精美登陆跳转,自定义数据验证,页面精美,
NULL 博文链接:https://541473825.iteye.com/blog/1568583