有一个页面,上下个有一个table,上面table中的每一行由一个“查看”链接,下方的table初始隐藏。点击“查看”,下方表格中的内容,根据该链接传给后台参数的不同动态改变。因为在同一个页面动态改变一部分显示,首先想到用ajax。根据上次的经验,还是用richfaces的a4j。
因为链接在第一个table中,而要改变的第二个table,所以用 <a4j:region> </a4j:region>将这两个table包含起来。然后在第一个table中加入链接列:
<a4j:region>
<t:dataTable value="#{ServicePermissionManage.allRelObjects}"
var="eltype"
cellpadding="0"
cellspacing="1" styleClass="listtable">
<h:column>
<f:facet name="header"><h:outputText value="查看版本" ></h:outputText></f:facet>
<a4j:commandLink reRender="templatedata" action="#{ServicePermissionManage.templateLook}" oncomplete="changestyle();">
<a4j:actionparam value="#{eltype.typeid}" name="typeid" assignTo="#{ServicePermissionManage.typeid}" />
<h:graphicImage value="../images/el/dian_an2.jpg" style="border:0px;"></h:graphicImage>
</a4j:commandLink>
</h:column>
... ...
</t:dataTable>
其reRender属性即为第二个table的id,action中的方法templateLook主要是得到第二个table的value对应的List;<a4j:actionparam>主要是向templateLook方法传递参数,根据typeid得到该type对应的信息。以下是第二个table对应的部分代码:
<t:dataTable id="templatedata" value="#{ServicePermissionManage.templatedata}"
var="template" cellpadding="0" cellspacing="1" style="display:none" styleClass="listtable">
<h:column>
<f:facet name="header"><h:outputText value="版本号"/></f:facet>
<h:outputText value='#{template.version}'></h:outputText>
</h:column>
... ...
</t:dataTable>
</a4j:region>
该table对应的list即为后台bean中的templatedata,即ArrayList<Template>
templatedata = new ArrayList<Template>();,而templateLook方法根据传递的typeid查库,得到对应的List并赋值给
templatedata,这样第二个table就动态生成了。挺有意思吧
~~
最后说一点,一开始在a4j:commandLink 中使用onclick事件调用js,但第二个表格一闪就没有了,后来改成用oncomplete调用就没问题了。附上changestyle()的代码,就是改变其显示与隐藏。
<script type="text/javascript">
function changestyle(){
var templateTable = document.getElementById('curObjForm:templatedata');
editionTable.style.display= "";
}
</script>
分享到:
相关推荐
通过A4J,你可以创建出更加动态和响应式的Web应用,无需过多地处理JavaScript代码,从而提高开发效率和用户体验。 A4J框架的核心功能包括: 1. **异步通信**:A4J支持在后台与服务器进行异步数据交换,这意味着...
通过A4J,开发者可以创建高度交互性和动态的Web应用,而无需深入学习复杂的JavaScript或XMLHttpRequest技术。A4J的主要目标是简化JSF中的AJAX集成,使得开发过程更高效,代码更简洁。 **二、A4J关键特性** 1. **...
3. **EL表达式**:A4J组件可以使用JSF的Expression Language(EL)表达式来绑定数据和方法,实现动态的AJAX行为。 4. **RichFaces组件库**:除了A4J组件,RichFaces还包含其他丰富的UI组件,如数据网格、日期选择器...
【标题】:“A4j 原创小案例+Spring+Hibernate”是一个综合性的IT学习资源,涵盖了多个关键的技术框架,旨在帮助用户理解和实践这些技术的整合应用。 【描述】:“个人做的 小例子 A4j Myfaces JSF Spring ...
A4J,全称为Ajax4jsf,是一个用于JavaServer Faces (JSF)应用程序的库,它提供了丰富的AJAX功能,使用户界面更加交互性和响应性。A4J是RichFaces框架的一部分,允许开发者在JSF应用中实现异步数据更新,而无需刷新...
JSF配用A4J在jsp中进行的二级联动使用方法。
a4j:ajaxListener a4j:region a4j:page a4j:support a4j:commandLink a4j:commandButton a4j:outputPanel a4j:actionparam a4j:status a4j:loadBundle a4j:mediaOutput 5. Ajax4jsf内建的换肤功能 6. ...
这是用richfaces3.1写的一个学习笔记。需要的看看 在jboss4.2下运行正常。 在tomcat中如果抛异常。 是因为jar包不一样导致的。可以给我发留言。我给你完整包 liucheng418@163.com
根据给定文件的信息,本文将深入探讨如何使用Java打印表格到A4纸上,并解析相关代码实现。这将涉及Java打印的基础知识、API介绍以及具体的代码实现细节。 ### Java打印基础知识 在Java中,打印功能主要通过`java....
标题"RichFaces/A4J API 英文版 下载 附 java 调用webservice" 提到了两个主要知识点:RichFaces和A4J API的英文版,以及Java调用Web服务。这表明我们将在讨论一个用于构建富互联网应用程序(RIA)的框架,以及...
舒尔特方格注意力训练表格(可A4打印)
在EPLAN GB-A4模板中,这些规定被转化为具体的设计元素和规则,如设备符号、导线颜色代码、标注方式等,确保设计人员在制作电气图纸时遵循标准,提高图纸的专业性和可读性。 3. A4尺寸的选择: A4尺寸是国际通用的...
在本文中,我们将深入探讨`rich:fileUpload`和`a4j:mediaOutput`这两个组件在实际开发中的使用,特别是在处理文件上传和媒体输出时的关键知识点。它们都是RichFaces库的一部分,这是一个强大的JavaServer Faces (JSF...
在这个场景中,“Dom生成表格和实现分页源码”指的是利用DOM操作动态生成表格,并且集成分页功能的代码实践。 首先,我们来详细探讨如何使用DOM生成表格。在HTML中,表格由`<table>`、`<tr>`(行)、`<th>`(表头)...
总结起来,这个资源提供的Java代码涵盖了多页A4打印的关键技术,包括页面格式定义、图形绘制、JPanel的多页处理和文字打印。通过学习和使用这些代码,开发者可以更好地理解和实现Java中的复杂打印功能。
【毕业设计表格A4.rar】是一个压缩包文件,通常用于整理和存储与毕业设计相关的各类表格文档。在毕业设计过程中,表格是数据整理、分析和展示的重要工具,它可以帮助我们系统化地呈现研究结果,使复杂的学术内容变得...
总的来说,这篇文章和示例代码着重于JSF框架中使用Ajax技术增强用户界面交互性的方法,尤其是通过 `<h:selectOneMenu>` 和 `<a4j:support>` 组件的配合,实现动态下拉菜单和页面部分更新。这对于提高Web应用的响应...
"方格纸打印模板a4"则主要适用于数学、绘画或手账等,方格提供了精确的坐标参考,便于绘制图形或计算。 在设计A4打印纸模板时,主要考虑以下几个方面: 1. **网格设计**:网格的大小、形状和颜色应适中,既不会过于...
Document document = new Document(PageSize.A4, 36, 36, 36, 36); ``` 3. **创建PDF写入器**:使用`PdfWriter.getInstance()`方法创建一个PDF写入器,将其与输出流关联,可以是内存流或文件流。这将允许我们向...