项目中要用到一些展示信息的表格,表头不固定,表格内容是即时从后台取的;考虑到复用性,笔者用jsp编写了一个表格模板,可以从request中获取List封装的数据,然后通过JSTL结合EL表达式填充到模板。最后完成的jsp文件可以作为一个单独的模块,嵌入到任意其它jsp页面需要的位置。
首先是规划一下表格的样式:
为简单起见,此处使用html的table等标签构建了一个简单的表格,表格背景隔行变色,整体颜色为蓝色系。表格定义部分的核心代码如下:
- <tablestyle="width:100%;border:1px white solid">
- <trbgcolor="#4F81BD"style="color: #fff;">
- <thstyle="text-align: center"><%=columns[0]%></th>
- <thstyle="text-align: center"><%=columns[1]%></th>
- </tr>
- <c:forEachitems="${list}"var="row"varStatus="status">
- <trbgcolor="${status.index%2 == 0?'#D0D8E8':'#E9EDF4'}">
- <tdalign="center">${status.current.key}</td>
- <tdalign="center">${row.value}</td>
- </tr>
- </c:forEach>
- </table>
- <tablestyle="width:100%;border:1px white solid">
- <trbgcolor="#4F81BD"style="color: #fff;">
- <thstyle="text-align: center"><%=columns[0]%></th>
- <thstyle="text-align: center"><%=columns[1]%></th>
- </tr>
- <c:forEachitems="${list}"var="row"varStatus="status">
- <trbgcolor="${status.index%2 == 0?'#D0D8E8':'#E9EDF4'}">
- <tdalign="center">${status.current.key}</td>
- <tdalign="center">${row.value}</td>
- </tr>
- </c:forEach>
- </table>
<table style="width:100%;border:1px white solid"> <tr bgcolor="#4F81BD"style="color: #fff;"> <th style="text-align: center"><%=columns[0]%></th> <th style="text-align: center"><%=columns[1]%></th> </tr> <c:forEach items="${list}" var="row"varStatus="status"> <tr bgcolor="${status.index%2 == 0?'#D0D8E8':'#E9EDF4'}"> <td align="center">${status.current.key}</td> <td align="center">${row.value}</td> </tr> </c:forEach> </table>
此表格只有两列,可用于显示包含一组“键值对”的数据。代码中的columns是jsp页面中定义的一个java字符串数组,保存两列列头的值,例如:“设备类型”、“数量”。数据行使用JSTL的forEach标签来遍历各条数据,其中list变量是存放在request中的List类型的对象,List中存放了一组包含“键值对”的数据实体,笔者所用的数据实体是一个简单的Bean:
- package com.reports.charts.bean;
- public classKeyValueBean {
- private String key;
- private String value;
- public KeyValueBean() {
- }
- public KeyValueBean(String key, String value) {
- this.key = key;
- this.value = value;
- }
- public String getKey() {
- return key;
- }
- publicvoid setKey(String key) {
- this.key = key;
- }
- public String getValue() {
- return value;
- }
- publicvoid setValue(String value){
- this.value = value;
- }
- }
- package com.reports.charts.bean;
- public classKeyValueBean {
- private String key;
- private String value;
- public KeyValueBean() {
- }
- public KeyValueBean(String key, String value) {
- this.key = key;
- this.value = value;
- }
- public String getKey() {
- return key;
- }
- publicvoid setKey(String key) {
- this.key = key;
- }
- public String getValue() {
- return value;
- }
- publicvoid setValue(String value){
- this.value = value;
- }
- }
package com.reports.charts.bean; public classKeyValueBean { private String key; private String value; public KeyValueBean() { } public KeyValueBean(String key, String value) { this.key = key; this.value = value; } public String getKey() { return key; } public void setKey(String key) { this.key = key; } public String getValue() { return value; } public void setValue(String value){ this.value = value; } }
模板中的取值方法用到了EL表达式,例如${list}表示取出request中的list对象。${status.current}和${row}其实指代的是同一个东西,也就是当前遍历的数据行,这里使用两种不同的写法是为了给读者提供更多实现方式的参考。关于EL表达式的详细信息,可参考笔者转发的文章《JSP中的EL表达式详细介绍》。
接下来的关键就是传递list的值放到request中了。一般J2EE项目中都使用了Struts、SpringMVC等mvc框架,常见的处理流程应该是客户端发送数据请求,Controller接收请求进行处理,取出并生成合适的数据存放到一个List中,然后转发给View,也就是转发给JSP页面来显示。
然而基于其它的考虑,笔者希望这个jsp页面可以不经过Controller而独立运行,于是就需要将控制层移到jsp代码中;完整的jsp模板定义代码如下:
其中,SpringContextHolder是笔者定义的一个获取Spring管理的其它Bean的工具类,用这个类可以方便地在同一个项目所有运行Java代码的地方使用,详见笔者的:《在JavaWeb应用中获取Spring管理的Bean的方法》。ReportFunctions类是一个业务类,包含了许多具体业务的代码,除了本文的jsp模板中可以使用之外,在项目的其它许多控制类都会用到。或者换句话说,笔者此处是借用了项目中现有的一个业务类,抽象出了一个模板。我们将模板保存一下,例如保存为“_tb2ColParam.jsp”,然后带着参数访问或获取这个jsp即可呈现出一个带样式的表格:“_tb2ColParam.jsp?p=1024&columns=types|nums”。
- <%@ page language="java"contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%@ taglib uri="http://java.sun.com/jsp/jstl/core"prefix="c" %>
- <%@ page import="com.reports.util.ReportFunctions"%>
- <%@ page import="com.reports.util.SpringContextHolder"%>
- <%@ page import="java.util.*"%>
- <%@ page import="com.reports.charts.bean.KeyValueBean"%>
- <%
- String[]columns = null;
- try{
- columns= request.getParameter("columns").split("\\|");
- }catch(NullPointerExceptione){
- e.printStackTrace();
- System.out.println("参数columns未赋值");
- }
- if(null == columns){
- columns= newString[]{"设备种类","数量"};
- }
- Stringparam = request.getParameter("p");
- ReportFunctionsreportF = SpringContextHolder.getBean(ReportFunctions.class);
- List<KeyValueBean>list = null;
- if(null != param){
- list= report.method(param);
- }else{
- System.out.println(“参数获取失败”);
- }
- if(0 == list.size()){
- list.add(new KeyValueBean("暂未统计", "暂无数据"));
- }
- request.setAttribute("list", list);
- %>
- <table style="width:100%;border:1px white solid">
- <tr bgcolor="#4F81BD"style="color: #fff;">
- <th style="text-align: center"><%=columns[0]%></th>
- <th style="text-align: center"><%=columns[1]%></th>
- </tr>
- <c:forEach items="${list}" var="row"varStatus="status">
- <tr bgcolor="${status.index%2 == 0?'#D0D8E8':'#E9EDF4'}">
- <td align="center">${status.current.key}</td>
- <td align="center">${row.value}</td>
- </tr>
- </c:forEach>
- </table>
相关推荐
【JSP开发工程师简历模板解析】 此简历是一个JSP开发工程师的专业展示,涵盖了该工程师的个人信息、教育背景、工作经验和项目经验。以下是根据简历内容提取的相关知识点: 1. **技能和经验**: - 该工程师拥有7年...
Web界面开发的,JSP中利用HTML语言实现美观大方的表格的设计,
2. `free-admin-templates-026`:这可能是一个免费的管理员模板,包含了各种页面布局和设计元素,比如仪表盘、表格、图表、表单等,帮助快速构建后台界面。 3. `网站后台管理框架系统`:这是一个完整的后台管理框架...
【jsp 项目的后台模板】 在Web开发领域,JavaServer Pages(JSP)是一种常见的服务器端脚本语言,用于创建动态网页。"jsp 项目的后台模板"通常指的是一个预设计的框架,开发者可以在这个基础上快速构建自己的后台...
为了丰富功能,模板通常集成各种UI组件,如日期选择器、表格、图表、表单验证等,这些组件来自于Bootstrap、Element UI或其他第三方库。 9. **国际化与本地化** 高级的后台管理模板会支持多语言切换,以适应全球...
【JSP后台模板详解】 JSP(JavaServer Pages)是一种基于Java技术的动态网页开发工具,它允许开发者在HTML、XML或者其他标记语言中嵌入Java代码,实现动态内容的生成。"jsp后台模板"通常指的是预设计的、适用于构建...
**JSP学生管理系统模板** **概述** `JSP(JavaServer Pages)`是一种由Sun Microsystems公司推出的动态网页技术,它允许开发人员将静态HTML代码与Java代码相结合,以创建交互式、数据驱动的Web应用程序。在本案例...
Java JSP调用iReport动态模板打印是一种在Web应用程序中实现报表打印的常见技术。iReport是一款开源的报表设计工具,它可以与Java、JSP、Servlets等进行集成,为开发者提供灵活的报表生成和打印功能。在这个场景下,...
在提供的压缩包文件"jsp页面table表格超方便的编辑操作(js控制)"中,很可能包含了示例代码、HTML模板、CSS样式和JavaScript脚本,用于展示如何在JSP页面中实现这样一个功能齐全的可编辑表格。学习和理解这些代码...
"后台jsp模板"是指使用JavaServer Pages (JSP)技术编写的预设计模板,主要用于创建后台管理界面。JSP是一种动态网页开发技术,它允许开发者将静态HTML与动态Java代码结合起来,使得在服务器端生成HTML变得更加便捷。...
3. 数据展示:例如表格、图表等,HTML用于结构布局,JSP连接数据库获取数据,可能借助JavaScript库如jQuery或Vue.js进行数据绑定和动态更新。 4. 表单处理:创建和提交表单,用于数据输入和编辑。HTML定义表单元素...
在网页设计中,表格(Table)是一种常见的数据展示方式,尤其在数据分析、报告撰写和信息组织等方面发挥着重要作用。"漂亮的table表格样式"是关于如何通过CSS(Cascading Style Sheets)来美化HTML表格,使其视觉...
表格模板-表格选择区域一分钟课程.ett
JSP网页模板则是预先设计好的页面布局,开发者可以基于这些模板快速构建网站前端页面,节省时间和提高效率。 在JSP网页模板中,通常包括以下几个核心组成部分: 1. **HTML结构**:这是模板的基础,定义了页面的...
HTML版本的模板适用于纯静态网页的开发,它包含了一系列预先设计好的HTML结构,如导航栏、按钮、表格、表单、模态框等。开发者可以直接使用这些元素,快速搭建页面布局,而无需从头开始编写CSS。HTML5语义标签的使用...
【JSP人力资源管理系统模板】是一个面向web开发的学习资源,特别适合初学者,特别是对JSP技术感兴趣的人。这个模板提供了一个基本的人力资源管理系统的前端布局和页面结构,旨在帮助开发者快速搭建起一个基础的后台...
这个模板使用了JSP(JavaServer Pages)作为动态网页开发技术,它允许开发者将HTML、CSS和Java代码结合在一起,实现服务器端的编程逻辑。JSP的核心优势在于它的可扩展性和灵活性,使得开发者能够方便地处理业务逻辑...
Bootstrap提供了大量的可定制组件,如导航栏、按钮、表单、表格、模态框、下拉菜单等,这些组件在后台管理系统中非常常见,可以帮助开发者轻松创建交互式的用户界面。 在压缩包内的文件名称列表中,我们可以看到...
本文将深入探讨如何使用Java和JSP技术来实现高级Word报表,并支持模板选择功能,这为需要生成定制化报表的用户提供了极大的便利。 首先,让我们理解标题中的核心概念——"jsp生成word高级报表"。JSP(JavaServer ...
#### 六、将JSP页面上的表格输出到Excel表中 将JSP页面上的表格输出到Excel中可以采用简单的HTML到Excel转换方法。一种实现方式如下: 1. **设置Content-Type**:首先,需要确保JSP页面设置了正确的`content-type`...