- 浏览: 150930 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (87)
- seam/jsf (22)
- java (24)
- spring (6)
- hibernate (2)
- Mysql (4)
- web (1)
- JMS (0)
- 计算机(computer) (1)
- linux (3)
- eclipse (4)
- Javascript (1)
- xstream (3)
- JPA (2)
- 汇编 (1)
- HttpClient (1)
- quartz (1)
- J2EE (2)
- EJB (1)
- restful web (1)
- maven (1)
- TTServer (3)
- restlet (0)
- jquery (0)
- Firebug (0)
- jquery Masonry+Infinite-Scroll (0)
- JACOB (0)
- elasticsearch (0)
最新评论
-
tuspark:
关于ApplicationContextAware的详细介绍, ...
ApplicationContextAware -
hc_face:
应该是 环境被初始化的时候,bean 也一并被初始化吧。先后顺 ...
ApplicationContextAware -
奇林醉:
有点明白了
Collections.unmodifiableList() -
tcking:
HashSet不关心迭代的次序,也就是说下一次的迭代次序可能就 ...
HashSet LinkedHashSet TreeSet -
yzhw:
我要去试试
seam前端提速
1. <rich:pickList>
1) 实际上,这个控件与 <h:selectManyMenu> 和 <h:selectManyListbox> 本质上是一样的,都允许选择一到多个值,存于 List 中。
2) 可以使用 <f:selectItem> 和 <f:selectItems> 为其添加选项,这些选项会显示在左侧框体里;
【注意】
l 当 SelectItem 的值是自定义类对象的时候,应该为其创建自定义 Converter ,并 Override 该自定义类的 equals 方法(这一步可以借助 Eclipse 自动生成)。
l 应当使用 converter 属性指定在 faces-config.xml 中注册的自定义 Converter 的 ID ;我曾想将 Converter 注册默认为一类对象做转换,但这种方法对 <rich:pickList> 的 <f:selectItems> 里面的自定义类无效。
3) value 属性必须绑定到一个可以接受多个值的对象上去,比如 List 、数组等。如果 value 对应的 List 或数组里默认有元素,则说明这些元素在初始阶段就被选中了,它们会一开始就自动出现在右侧框体里。
4) 可以修改 copyAllControlLabel 、 copyControlLabel 、 removeControlLabel 、 removeAllControlLabel 四个属性的值,指定按钮上的显示 Label 。
5) 可以用名为 copyAllControl 、 copyAllControlDisabled 、 removeAllControl 、 removeAllControlDisabled 、 copyControl 、 copyControlDisabled 、 removeControl 、 removeControlDisabled 的 <f:facet> 自定义控制按钮的外观。每一个按钮都需要定义 enabled 和 disabled 两种状态时的外观。
6) showButtonsLabel 属性默认为 true ,当设为 false 时,控制按钮不显示 Label 文字。
7) 默认情况下,通过双击 Item 可以实现左右增删;当 switchByClick 属性设为 true 时,则单击即可完成以上操作。
8) 除了支持 onclick 、 onchange 等基本 JavaScript 事件以外,还支持如 onlistchanged 等额外事件。可以使用 <a4j:support> 来指定 onlistchanged 等事件到 event 属性,已触发 Ajax Request ,刷新 reRender 中的控件。
9) 例如:
<h:panelGrid>
<a4j:form>
<rich:dataTable id="xcvrTable" value="#{dataTableTestBean.xcvrList}" var="xcvr" rows="10">
<f:facet name="header">
<h:outputText value="DataTable"></h:outputText>
</f:facet>
<rich:columns value="#{dataTableTestBean.selectedFields}" var="field">
<f:facet name="header">
<h:outputText value="#{field.fieldName}"></h:outputText>
</f:facet>
<h:outputText value="#{xcvr[field.fieldName]}"></h:outputText>
</rich:columns>
<f:facet name="footer">
<rich:datascroller></rich:datascroller>
</f:facet>
</rich:dataTable>
</a4j:form>
<a4j:form>
<rich:pickList converter="fieldConverter" value="#{dataTableTestBean.selectedFields}" copyAllControlLabel="Add All" copyControlLabel="Add" removeAllControlLabel="Del All" removeControlLabel="Del" showButtonsLabel="false">
<f:selectItems value="#{dataTableTestBean.allFieldOptions}" />
<a4j:support event="onlistchanged" reRender="xcvrTable" actionListener="#{dataTableTestBean.listChanged}">
</a4j:support>
</rich:pickList>
</a4j:form>
</h:panelGrid>
2. <rich:orderingList>
1) <rich:orderingList> 的形式很像 dataTable 类控件,只是增加了一些额外功能;可以像使用 <h:dataTable> 或 <rich:dataTable> 一样使用它。
2) value 属性接受 List 之类的值。通过 var 属性指定的行变量进行遍历。
3) value 的 List 中,如果使用的是自定义类对象,则也要提供自定义 Converter ,并用 converter 属性指定 faces-config.xml 中的注册名;同时,还要 Override 自定义类的 equals 和 hashCode 方法(这个也可以由 Eclipse 代劳)。
4) 注意,通过右侧按钮实现的顺序调整,是 Client 端的。只有通过提交(如 commandButton 或者 <a4j:support> ),才能更新 managed bean 内的值。
5) 可以使用 <h:column> 、 <rich:column> 、 <rich:columns> 来定义其内容,就像使用 dataTable 一样。
6) selection 属性用来定义哪些元素是一开始就已经处于选中状态的了,该属性接受 Set 类型的值。
7) 可以使用 <f:facet name="caption"> 为控件添加一个标题。
8) 可以修改 topControlLabel 、 bottomControlLabel 、 upControlLabel 、 downControlLabel 四个属性的值,指定按钮上的显示 Label 。
9) 可以用名为 topControl 、 topControlDisabled 、 bottomControl 、 bottomControlDisabled 、 upControl 、 upControlDisabled 、 downControl 、 downControlDisabled 的 <f:facet> 自定义控制按钮的外观。每一个按钮都需要定义 enabled 和 disabled 两种状态时的外观。
10) 再次提醒,通过右侧按钮调整的顺序,仅限于 Client 端。要想调整 managed bean 中的顺序,可以使用 <a4j:commandButton> 或者 <a4j:commandLink> 来提交 Ajax Request 以更新模型值并刷新页面;或者干脆省掉按钮或链接,直接使用 <a4j:support event=”onorderchange”> ,当顺序改变时, JavaScript 事件会通过 <a4j:support> 触发 Ajax Request 以更新模型值并刷新页面。
11) 例如:
<a4j:form>
<rich:dataTable id="xcvrTable" value="#{dataTableTestBean.xcvrList}" var="xcvr" rows="10">
<f:facet name="header">
<h:outputText value="DataTable"></h:outputText>
</f:facet>
<rich:columns value="#{dataTableTestBean.selectedFields}" var="field">
<f:facet name="header">
<h:outputText value="#{field.fieldName}"></h:outputText>
</f:facet>
<h:outputText value="#{xcvr[field.fieldName]}"></h:outputText>
</rich:columns>
</rich:dataTable>
</a4j:form>
<a4j:form>
<rich:orderingList id="fieldOrderList" value="#{dataTableTestBean.selectedFields}" var="row" converter="fieldConverter" >
<a4j:support event="onorderchanged" reRender="xcvrTable, fieldPickList" ajaxSingle="true" ></a4j:support>
<rich:column>
<f:facet name="header">
<h:outputText value="Field Name"></h:outputText>
</f:facet>
<h:outputText value="#{row.fieldName}"></h:outputText>
</rich:column>
</rich:orderingList>
<rich:pickList id="fieldPickList" converter="fieldConverter" value="#{dataTableTestBean.selectedFields}">
<f:selectItems value="#{dataTableTestBean.allFieldOptions}" />
<a4j:support event="onlistchanged" reRender="xcvrTable, fieldOrderList" actionListener="#{dataTableTestBean.listChanged}" ajaxSingle="true" ></a4j:support>
</rich:pickList>
</a4j:form>
3. <rich:listShuttle>
1) <rich:listShuttle> 基本上来说就是 <rich:orderingList> 和 <rich:pickList> 的组合体。既可以选择一到多个值,又可以调整它们的顺序。可以在左右两个框体内显示任意多列。
2) 可以将左侧框体内的值选择到到右侧框体,然后在右侧框体内调整顺序。而这种调整顺序,仍然是 Client 端的调整,仍然需要提交 Ajax Request 才能更新模型值。
3) 对于自定义类对象,仍然需要提供自定义 Converter ,设置 <rich:listShuttle> 的 converter 属性; Override 自定义类的 equals 和 hashCode 方法。
4) sourceValue 属性用于设定左侧框体内的值,也即整体范围 List ; targetValue 属性用于设定右侧框体内的值,也即选出项 List 。二者都接受集合类( List ),并且共用一个 var 属性指定变量名称。
5) sourceCaptionLabel 和 targetCaptionLabel 属性分别设定左右侧框体的标题。
6) 对于按钮外观的自定义修改与前面两个控件大同小异。
7) 可以通过 onlistchanged 或 onorderchanged 事件,使用 <a4j:support> 分别触发 Ajax Request 。
8) sourceRequired 或 targetRequired 分别设为 true 的时候,表示左框体或右框体不能为空。
9) 例如:
<a4j:form>
<rich:dataTable id="xcvrTable" value="#{dataTableTestBean.xcvrList}" var="xcvr" rows="10">
<f:facet name="header">
<h:outputText value="DataTable"></h:outputText>
</f:facet>
<rich:columns value="#{dataTableTestBean.selectedFields}" var="field">
<f:facet name="header">
<h:outputText value="#{field.fieldName}"></h:outputText>
</f:facet>
<h:outputText value="#{xcvr[field.fieldName]}"></h:outputText>
</rich:columns>
</rich:dataTable>
</a4j:form>
<a4j:form>
<rich:listShuttle var="row" targetValue="#{dataTableTestBean.selectedFields}" sourceValue="#{dataTableTestBean.fields}" converter="fieldConverter" >
<a4j:support event="onlistchanged" reRender="xcvrTable"></a4j:support>
<a4j:support event="onorderchanged" reRender="xcvrTable"></a4j:support>
<rich:column>
<f:facet name="header">
<h:outputText value="Field Name"></h:outputText>
</f:facet>
<h:outputText value="#{row.fieldName}"></h:outputText>
</rich:column>
</rich:listShuttle>
</a4j:form>
from:http://blog.csdn.net/gengv/archive/2009/06/13/4265338.aspx
1) 实际上,这个控件与 <h:selectManyMenu> 和 <h:selectManyListbox> 本质上是一样的,都允许选择一到多个值,存于 List 中。
2) 可以使用 <f:selectItem> 和 <f:selectItems> 为其添加选项,这些选项会显示在左侧框体里;
【注意】
l 当 SelectItem 的值是自定义类对象的时候,应该为其创建自定义 Converter ,并 Override 该自定义类的 equals 方法(这一步可以借助 Eclipse 自动生成)。
l 应当使用 converter 属性指定在 faces-config.xml 中注册的自定义 Converter 的 ID ;我曾想将 Converter 注册默认为一类对象做转换,但这种方法对 <rich:pickList> 的 <f:selectItems> 里面的自定义类无效。
3) value 属性必须绑定到一个可以接受多个值的对象上去,比如 List 、数组等。如果 value 对应的 List 或数组里默认有元素,则说明这些元素在初始阶段就被选中了,它们会一开始就自动出现在右侧框体里。
4) 可以修改 copyAllControlLabel 、 copyControlLabel 、 removeControlLabel 、 removeAllControlLabel 四个属性的值,指定按钮上的显示 Label 。
5) 可以用名为 copyAllControl 、 copyAllControlDisabled 、 removeAllControl 、 removeAllControlDisabled 、 copyControl 、 copyControlDisabled 、 removeControl 、 removeControlDisabled 的 <f:facet> 自定义控制按钮的外观。每一个按钮都需要定义 enabled 和 disabled 两种状态时的外观。
6) showButtonsLabel 属性默认为 true ,当设为 false 时,控制按钮不显示 Label 文字。
7) 默认情况下,通过双击 Item 可以实现左右增删;当 switchByClick 属性设为 true 时,则单击即可完成以上操作。
8) 除了支持 onclick 、 onchange 等基本 JavaScript 事件以外,还支持如 onlistchanged 等额外事件。可以使用 <a4j:support> 来指定 onlistchanged 等事件到 event 属性,已触发 Ajax Request ,刷新 reRender 中的控件。
9) 例如:
<h:panelGrid>
<a4j:form>
<rich:dataTable id="xcvrTable" value="#{dataTableTestBean.xcvrList}" var="xcvr" rows="10">
<f:facet name="header">
<h:outputText value="DataTable"></h:outputText>
</f:facet>
<rich:columns value="#{dataTableTestBean.selectedFields}" var="field">
<f:facet name="header">
<h:outputText value="#{field.fieldName}"></h:outputText>
</f:facet>
<h:outputText value="#{xcvr[field.fieldName]}"></h:outputText>
</rich:columns>
<f:facet name="footer">
<rich:datascroller></rich:datascroller>
</f:facet>
</rich:dataTable>
</a4j:form>
<a4j:form>
<rich:pickList converter="fieldConverter" value="#{dataTableTestBean.selectedFields}" copyAllControlLabel="Add All" copyControlLabel="Add" removeAllControlLabel="Del All" removeControlLabel="Del" showButtonsLabel="false">
<f:selectItems value="#{dataTableTestBean.allFieldOptions}" />
<a4j:support event="onlistchanged" reRender="xcvrTable" actionListener="#{dataTableTestBean.listChanged}">
</a4j:support>
</rich:pickList>
</a4j:form>
</h:panelGrid>
2. <rich:orderingList>
1) <rich:orderingList> 的形式很像 dataTable 类控件,只是增加了一些额外功能;可以像使用 <h:dataTable> 或 <rich:dataTable> 一样使用它。
2) value 属性接受 List 之类的值。通过 var 属性指定的行变量进行遍历。
3) value 的 List 中,如果使用的是自定义类对象,则也要提供自定义 Converter ,并用 converter 属性指定 faces-config.xml 中的注册名;同时,还要 Override 自定义类的 equals 和 hashCode 方法(这个也可以由 Eclipse 代劳)。
4) 注意,通过右侧按钮实现的顺序调整,是 Client 端的。只有通过提交(如 commandButton 或者 <a4j:support> ),才能更新 managed bean 内的值。
5) 可以使用 <h:column> 、 <rich:column> 、 <rich:columns> 来定义其内容,就像使用 dataTable 一样。
6) selection 属性用来定义哪些元素是一开始就已经处于选中状态的了,该属性接受 Set 类型的值。
7) 可以使用 <f:facet name="caption"> 为控件添加一个标题。
8) 可以修改 topControlLabel 、 bottomControlLabel 、 upControlLabel 、 downControlLabel 四个属性的值,指定按钮上的显示 Label 。
9) 可以用名为 topControl 、 topControlDisabled 、 bottomControl 、 bottomControlDisabled 、 upControl 、 upControlDisabled 、 downControl 、 downControlDisabled 的 <f:facet> 自定义控制按钮的外观。每一个按钮都需要定义 enabled 和 disabled 两种状态时的外观。
10) 再次提醒,通过右侧按钮调整的顺序,仅限于 Client 端。要想调整 managed bean 中的顺序,可以使用 <a4j:commandButton> 或者 <a4j:commandLink> 来提交 Ajax Request 以更新模型值并刷新页面;或者干脆省掉按钮或链接,直接使用 <a4j:support event=”onorderchange”> ,当顺序改变时, JavaScript 事件会通过 <a4j:support> 触发 Ajax Request 以更新模型值并刷新页面。
11) 例如:
<a4j:form>
<rich:dataTable id="xcvrTable" value="#{dataTableTestBean.xcvrList}" var="xcvr" rows="10">
<f:facet name="header">
<h:outputText value="DataTable"></h:outputText>
</f:facet>
<rich:columns value="#{dataTableTestBean.selectedFields}" var="field">
<f:facet name="header">
<h:outputText value="#{field.fieldName}"></h:outputText>
</f:facet>
<h:outputText value="#{xcvr[field.fieldName]}"></h:outputText>
</rich:columns>
</rich:dataTable>
</a4j:form>
<a4j:form>
<rich:orderingList id="fieldOrderList" value="#{dataTableTestBean.selectedFields}" var="row" converter="fieldConverter" >
<a4j:support event="onorderchanged" reRender="xcvrTable, fieldPickList" ajaxSingle="true" ></a4j:support>
<rich:column>
<f:facet name="header">
<h:outputText value="Field Name"></h:outputText>
</f:facet>
<h:outputText value="#{row.fieldName}"></h:outputText>
</rich:column>
</rich:orderingList>
<rich:pickList id="fieldPickList" converter="fieldConverter" value="#{dataTableTestBean.selectedFields}">
<f:selectItems value="#{dataTableTestBean.allFieldOptions}" />
<a4j:support event="onlistchanged" reRender="xcvrTable, fieldOrderList" actionListener="#{dataTableTestBean.listChanged}" ajaxSingle="true" ></a4j:support>
</rich:pickList>
</a4j:form>
3. <rich:listShuttle>
1) <rich:listShuttle> 基本上来说就是 <rich:orderingList> 和 <rich:pickList> 的组合体。既可以选择一到多个值,又可以调整它们的顺序。可以在左右两个框体内显示任意多列。
2) 可以将左侧框体内的值选择到到右侧框体,然后在右侧框体内调整顺序。而这种调整顺序,仍然是 Client 端的调整,仍然需要提交 Ajax Request 才能更新模型值。
3) 对于自定义类对象,仍然需要提供自定义 Converter ,设置 <rich:listShuttle> 的 converter 属性; Override 自定义类的 equals 和 hashCode 方法。
4) sourceValue 属性用于设定左侧框体内的值,也即整体范围 List ; targetValue 属性用于设定右侧框体内的值,也即选出项 List 。二者都接受集合类( List ),并且共用一个 var 属性指定变量名称。
5) sourceCaptionLabel 和 targetCaptionLabel 属性分别设定左右侧框体的标题。
6) 对于按钮外观的自定义修改与前面两个控件大同小异。
7) 可以通过 onlistchanged 或 onorderchanged 事件,使用 <a4j:support> 分别触发 Ajax Request 。
8) sourceRequired 或 targetRequired 分别设为 true 的时候,表示左框体或右框体不能为空。
9) 例如:
<a4j:form>
<rich:dataTable id="xcvrTable" value="#{dataTableTestBean.xcvrList}" var="xcvr" rows="10">
<f:facet name="header">
<h:outputText value="DataTable"></h:outputText>
</f:facet>
<rich:columns value="#{dataTableTestBean.selectedFields}" var="field">
<f:facet name="header">
<h:outputText value="#{field.fieldName}"></h:outputText>
</f:facet>
<h:outputText value="#{xcvr[field.fieldName]}"></h:outputText>
</rich:columns>
</rich:dataTable>
</a4j:form>
<a4j:form>
<rich:listShuttle var="row" targetValue="#{dataTableTestBean.selectedFields}" sourceValue="#{dataTableTestBean.fields}" converter="fieldConverter" >
<a4j:support event="onlistchanged" reRender="xcvrTable"></a4j:support>
<a4j:support event="onorderchanged" reRender="xcvrTable"></a4j:support>
<rich:column>
<f:facet name="header">
<h:outputText value="Field Name"></h:outputText>
</f:facet>
<h:outputText value="#{row.fieldName}"></h:outputText>
</rich:column>
</rich:listShuttle>
</a4j:form>
from:http://blog.csdn.net/gengv/archive/2009/06/13/4265338.aspx
发表评论
-
seam前端提速
2010-09-08 13:11 1389Seam使用了richfaces做为jsf ... -
seam topic
2010-08-25 16:58 2218Forum: Seam Users Forum ListTop ... -
maven 中使用jetty 改端口号
2010-08-04 13:52 1404jetty 使用时,如果出现 address already ... -
seam空格
2010-07-23 09:59 711seam空格:&nbps;没用 ,要使用 ... -
null value seam
2010-07-23 09:33 533因为给model添加一个double类型的字段(数据库已有一些 ... -
Seam el 中使用 map
2010-06-29 15:23 1295一直以为在el里不能用map,今天发现原来可以... @na ... -
seam pdf The document has no pages
2010-06-28 13:31 1773用seam 中的pdf功能时 出现The document h ... -
JSF多对多增加
2010-06-25 17:04 932多对多关系时 person (n-n) work (perso ... -
JSF Chapter04
2010-06-24 13:18 1527. 用队列控制 Event Traffic ... -
JSF Chapter11
2010-06-24 13:14 8731. 使用内建的 Skins 1) 基 ... -
JSF Chapter10
2010-06-24 13:13 1196. <rich:scrollableDataT ... -
JSF Chapter09
2010-06-24 11:35 10581. <rich:dropDownM ... -
JSF Chapter07
2010-06-24 11:34 15891. 常用的 dataTable 类的控件有: l ... -
JSF Chapter06
2010-06-24 11:20 1751. <rich:panel> 1) ... -
JSF Chapter05
2010-06-24 11:18 16811. a4j: 提供了页面级的 Ajax 支持,也 ... -
JSF Chapter03
2010-06-24 11:14 1494本章主要包括三方面内 ... -
JSF Chapter02
2010-06-24 11:13 9651. 配置 RichFaces 1) ... -
JSF Chapter01
2010-06-24 11:12 9261. JSF’s View = UICompone ... -
JSF Chapter04(频繁调用控件)
2010-06-24 11:06 13611. <!-- [end ... -
Property '****' is not writable on type
2010-04-28 22:20 1121再用seam+jsf开发的时候冒出:***Edit.xhtml ...
相关推荐
资源名称:精通JSF—基于EJBHibernateSpring开发实践视频教程资源目录:【】chapter13_code【】Jsf第七章【】JSF第二章【】Jsf第五章【】Jsf第八章【】Jsf第六章【】Jsf第十三章【】Jsf第十五章【】Jsf第十六章【】...
首先,我们可以看到文件名中有`chapter9_details.html`,这可能是一个关于第九章详细内容的HTML文档,通常这样的文件会包含讲解和示例代码的解释,可能涵盖了JSF组件的使用、事件处理、转换和验证等关键主题。...
在"chapter16"这个文件中,可能涵盖了JSF的高级主题,例如: - **自定义组件**:如果开发者需要扩展JSF的默认组件库,可以创建自定义组件,这涉及到UIComponent子类的继承和渲染过程的理解。 - **导航管理**:JSF的...
下面我们将详细探讨JSF的核心概念、关键组件以及`build.properties.sample`和`chapter05`可能包含的内容。 **JSF框架概述:** JSF是Java EE的一部分,旨在简化Web开发,通过提供UI组件、事件处理和数据绑定等功能来...
书本源码中的各个章节代码文件,如chapter3_code到chapter10_code,分别对应书中各章节的实例代码。这些代码实例通常会展示如何在实际项目中应用JSF、EJB、Hibernate和Spring进行整合,包括但不限于以下知识点: 1....
Chapter 3: JSF Component Libraries Chapter 4: Interacting with Databases through the Java Persistence API Chapter 5: Implementing the Business Tier with Session Beans Chapter 6: Contexts and ...
在本章"使用JSP开发Web应用...在后续章节中,你还会接触到更多高级主题,如EL(Expression Language)、JSF(JavaServer Faces)以及现代Web框架如Spring MVC的使用。持续学习和实践,将使你成为一位熟练的Web开发者。
在这个"chapter3"的例子中,你可能会看到以下内容: - 一个简单的JSF页面,展示了Seam组件如何与JSF页面交互。 - 一个Seam组件类,可能包含一些业务逻辑或数据访问操作。 - 相关的配置文件,如`pom.xml`(如果使用...