最优方案:
<c:forEach items="${waterLevel}" var="device" varStatus="wl">
<tr>
<c:if test="${wl.index==0}">
<th rowspan="${waterLevelLimitSumNum}">水位计2</th>
</c:if>
<th rowspan="${device.limitDataList.size()}">${device.name}</th>
<c:forEach items="${device.limitDataList}" var="limi" begin="0" end="0">
<td>${limi.parName}</td>
<td>
<input class="noborder" name="maxValue" value="${limi.maxLimit}" maxlength="7"/>
<input name="devId" value="${limi.deviceId}" type="hidden"/>
<input name="parNam" value="${limi.parName}" type="hidden"/>
</td>
<td>
<input class="noborder" name="minValue" value="${limi.minLimit}" maxlength="7"/>
</td>
<td><input type="checkbox" id="${limi.deviceId}" name="${limi.parName}"/></td>
</c:forEach>
</tr>
<c:if test="${device.limitDataList.size()>1}">
<tr>
<c:forEach items="${device.limitDataList}" var="limi" begin="1" >
<td>${limi.parName}</td>
<td>
<input class="noborder" name="maxValue" value="${limi.maxLimit}" maxlength="7"/>
<input name="devId" value="${limi.deviceId}" type="hidden"/>
<input name="parNam" value="${limi.parName}" type="hidden"/>
</td>
<td>
<input class="noborder" name="minValue" value="${limi.minLimit}" maxlength="7"/>
</td>
<td><input type="checkbox" id="${limi.deviceId}" name="${limi.parName}"/></td>
</c:forEach>
</tr>
</c:if>
</c:forEach>
其次方案:
<c:forEach items="${waterLevel}" var="device" varStatus="wl">
<tr>
<c:if test="${wl.index==0}">
<th rowspan="${waterLevelLimitSumNum}">水位计1</th>
</c:if>
<th rowspan="${device.limitDataList.size()}">${device.name}</th>
<td>${device.limitDataList.get(0).parName}</td>
<td>
<input class="noborder" name="maxValue" value="${device.limitDataList.get(0).maxLimit}" maxlength="7"/>
<input name="devId" value="${device.limitDataList.get(0).deviceId}" type="hidden"/>
<input name="parNam" value="${device.limitDataList.get(0).parName}" type="hidden"/>
</td>
<td>
<input class="noborder" name="minValue" value="${device.limitDataList.get(0).minLimit}" maxlength="7"/>
</td>
<td><input type="checkbox" id="${device.limitDataList.get(0).deviceId}" name="${device.limitDataList.get(0).parName}"/></td>
</tr>
<c:if test="${device.limitDataList.size()==2}">
<tr>
<td>${device.limitDataList.get(1).parName}</td>
<td>
<input class="noborder" name="maxValue" value="${device.limitDataList.get(1).maxLimit}" maxlength="7"/>
<input name="devId" value="${device.limitDataList.get(1).deviceId}" type="hidden"/>
<input name="parNam" value="${device.limitDataList.get(1).parName}" type="hidden"/>
</td>
<td>
<input class="noborder" name="minValue" value="${device.limitDataList.get(1).minLimit}" maxlength="7"/>
</td>
<td><input type="checkbox" id="${device.limitDataList.get(1).deviceId}" name="${device.limitDataList.get(1).parName}"/></td>
</tr>
</c:if>
</c:forEach>
最差方案:
<c:forEach items="${waterLevel}" var="device" varStatus="wl">
<tr>
<c:if test="${wl.index==0}">
<th rowspan="${waterLevelLimitSumNum}">水位计3</th>
</c:if>
<th rowspan="${device.limitDataList.size()}">${device.name}</th>
<c:if test="${device.limitDataList.size()==1}">
<c:forEach items="${device.limitDataList}" var="limi" >
<c:if test="${limi.parName=='moisturize'}" >
<td>补水水位</td>
<td>
<input class="noborder" name="maxValue" value="${limi.maxLimit}" maxlength="7"/>
<input name="devId" value="${limi.deviceId}" type="hidden"/>
<input name="parNam" value="${limi.parName}" type="hidden"/>
</td>
<td>
<input class="noborder" name="minValue" value="${limi.minLimit}" maxlength="7"/>
</td>
<td><input type="checkbox" id="${limi.deviceId}" name="${limi.parName}"/></td>
</c:if>
<c:if test="${limi.parName=='condensated_water'}" >
<td>凝水水位</td>
<td>
<input class="noborder" name="maxValue" value="${limi.maxLimit}" maxlength="7"/>
<input name="devId" value="${limi.deviceId}" type="hidden"/>
<input name="parNam" value="${limi.parName}" type="hidden"/>
</td>
<td>
<input class="noborder" name="minValue" value="${limi.minLimit}" maxlength="7"/>
</td>
<td><input type="checkbox" id="${limi.deviceId}" name="${limi.parName}"/></td>
</c:if>
</c:forEach>
</tr>
</c:if>
<c:if test="${device.limitDataList.size()==2}">
<c:forEach items="${device.limitDataList}" var="limi" >
<c:if test="${limi.parName=='moisturize'}" >
<td>补水水位</td>
<td>
<input class="noborder" name="maxValue" value="${limi.maxLimit}" maxlength="7"/>
<input name="devId" value="${limi.deviceId}" type="hidden"/>
<input name="parNam" value="${limi.parName}" type="hidden"/>
</td>
<td>
<input class="noborder" name="minValue" value="${limi.minLimit}" maxlength="7"/>
</td>
<td><input type="checkbox" id="${limi.deviceId}" name="${limi.parName}"/></td>
</c:if>
</c:forEach>
</tr>
<tr>
<c:forEach items="${device.limitDataList}" var="limi" >
<c:choose>
<c:when test="${limi.parName=='condensated_water'}">
<td>凝水水位</td>
<td>
<input class="noborder" name="maxValue" value="${limi.maxLimit}" maxlength="7"/>
<input name="devId" value="${limi.deviceId}" type="hidden"/>
<input name="parNam" value="${limi.parName}" type="hidden"/>
</td>
<td>
<input class="noborder" name="minValue" value="${limi.minLimit}" maxlength="7"/>
</td>
<td><input type="checkbox" id="${limi.deviceId}" name="${limi.parName}"/></td>
</c:when>
</c:choose>
</c:forEach>
</tr>
</c:if>
</c:forEach>
分享到:
相关推荐
可以使用while或for循环,配合JSP标签库(如JSTL)的`<c:forEach>`标签。 8. **JSP标签库(Tag Libraries)**:JSTL(JavaServer Pages Standard Tag Library)是常用的JSP标签库,提供了一系列的标签来简化JSP页面...
它允许开发者定义一系列可复用的页面片段(如页眉、页脚、导航栏等),并通过简单的标签来实现这些片段的组合与嵌入。 - **Definition**:在Tiles中,每个页面片段都称为一个“Definition”,它是构建复杂页面的基本...
在服务器端,我们可能有一个JSP页面,使用JSTL的`<c:forEach>`标签来遍历数据库中获取的用户列表: ```jsp <table id="userTable"> <c:forEach var="user" items="${users}"> ${user.name} ${user.email} ...
能够编制出功能复杂的程序**:这不是C语言的特点,任何高级语言都能编写复杂程序。 - **C. C语言可以直接对硬件进行操作**:正确。 - **D. C语言移植性好**:正确。 **正确答案**:B #### 题目19:Excel中的...
- `<table>`标签(A项)用于创建表格。 - `<input>`标签(B项)用于创建各种输入控件,如文本框、按钮等,但不是下拉菜单。 - `<form>`标签(C项)用于创建表单,包含其他元素如输入控件。 #### 题目4:结构化...
一个成功的软件需要有一个成功的架构,但软件架构的建立是一个复杂而又持续改进的过程,软件开发者们不可能对每个不同的项目做不同的架构,而总是尽量重用以前的架构,或开发出尽量通用的架构方案,Struts就是...
- **基本结构**:`<table>`、`<tr>`、`<td>`和`<th>`分别表示表格、行、单元格和表头。 - **样式调整**:可以通过属性如`border`、`cellpadding`、`cellspacing`等调整表格样式。 #### 2.5 超链接的使用 - **本地...
Ctrl+V是一个常见的快捷键组合,用于执行“粘贴”操作。在Word中,按下Ctrl+V与点击工具栏上的粘贴按钮具有相同的功能,即把剪贴板中的内容粘贴到当前位置。 ### 3. MySQL中的分页功能 在MySQL中实现类似分页功能...
它使用服务层框架可以将JavaBeans从Jsp/Servlet中分离出来,而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关信息,一般是通过标签库(Taglib)实现,不同框架有不同自己的...
- **知识点**: HTML中的表格是由一系列的表格标签构成的,包括`<table>`、`<tr>`、`<td>`等。 - **解释**: `<tr>`标签用于表示表格中的行。因此,正确答案为C。 #### 22. 函数的嵌套调用与定义 - **知识点**: 在...
JAVA模版引擎Freemarker常用标签(一) 1. if指令 这是一个典型的分支控制指令,该指令的作用完全类似于Java语言中的if,if指令的语法格式如下: <#if condition>... <#elseif condition>... <#elseif condition>......