在form中使用c:foreach
时间: 2024-02-28 15:57:25 浏览: 155
在使用c:foreach时,需要先在JSP页面的开头添加以下标签库声明:
```
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
```
然后可以在form中使用c:foreach,示例代码如下:
```
<form>
<c:forEach var="item" items="${itemList}">
<input type="checkbox" name="selectedItems" value="${item.id}">
${item.name}
<br>
</c:forEach>
<input type="submit" value="Submit">
</form>
```
其中,itemList是一个在Controller中传递到JSP页面的List对象,item是循环中的当前元素,可以使用${item.xxx}访问其中的属性。在循环中生成复选框,用户选中后提交表单时,会将选中的复选框的value值作为selectedItems参数传递到后台。
相关问题
<form:select class="form-control input-sm selectpicker" path="productCode" data-live-search="true" data-max-options="10" data-actions-box="true" title="${productTitle}"> <form:option value="">--${productTitle}--</form:option> <c:forEach items="${ALL_PRODUCTS}" var="item" > <form:option value="${item.productCode}" label="${item.productCode}" data-subtext="${item.productName}"/> </c:forEach> </form:select>如何控制宽度
你可以使用 `style` 属性或者在 `class` 属性中添加自定义的 CSS 类来控制 select 元素的宽度。例如,你可以将 `style` 属性设置为 `width: 200px;` 或者在 `class` 属性中添加一个自定义的 CSS 类来设置宽度。下面是一个示例:
```html
<form:select class="form-control input-sm selectpicker my-custom-class" path="productCode"
data-live-search="true" data-max-options="10" data-actions-box="true"
title="${productTitle}" style="width: 200px;">
<form:option value="">--${productTitle}--</form:option>
<c:forEach items="${ALL_PRODUCTS}" var="item">
<form:option value="${item.productCode}" label="${item.productCode}"
data-subtext="${item.productName}"/>
</c:forEach>
</form:select>
```
在上面的示例中,我添加了一个名为 `my-custom-class` 的自定义 CSS 类,并将 `style` 属性设置为 `width: 200px;`。你可以根据自己的需求修改这些值。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*,edu.nustti.dao.*,edu.nustti.dao.impl.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>用户注册</title> </head> <body> <form action="/STU_manager/servlet/UserServlet?action=register" name="f1" method="post"> <table border="0"> <tr> <td>用户名:</td> <td><input type="text" name="userName"></td> </tr> <tr> <td>密 码:</td> <td><input type="password" name="password"></td> </tr> <tr> <td>姓 名:</td> <td><input type="text" name="trueName"></td> </tr> <tr> <td>性 别:</td> <td><input type="radio" checked="checked" name="sex" value="0">男 <input type="radio" name="sex" value="1">女 </td> </tr> <tr> <td>生 日:</td> <td><select name="y"> <c:forEach begin="1990" end="2010" var="y"> <option value="${y}">${y}</option> <!-- EL表达式 --> </c:forEach> </select> <select name="m"> <c:forEach begin="1" end="9" var="m"> <option value="0${m}">${m}</option> </c:forEach> <c:forEach begin="10" end="12" var="m"> <option value="${m}">${m}</option> </c:forEach> </select> <select name="d"> <c:forEach begin="1" end="9" var="d"> <option value="0${d}">${d}</option> </c:forEach> <c:forEach begin="10" end="31" var="d"> <option value="${d}">${d}</option> </c:forEach> </select></td> </tr> <tr> <td>爱 好:</td> <td> <% FavoritesDao dao1 = new FavoritesDaolmp1(); // 创建爱好存储业务模型 List list1 = dao1.getAllFavorates(); request.setAttribute("F", list1); %> <c:forEach var="f" items="${F}"> <!-- JSTL标签,列出多个复选框选项 --> <input type="checkbox" name="favorates" value="${f.id }">${f.favorate} </c:forEach> </td> </tr> <tr> <td>班 级:</td> <td> <% ClassesDao dao2 =(ClassesDao) new ClassesDaoImpl(); // 创建班级存储业务模型 List list2 = dao2.getAllClasses(); request.setAttribute("C", list2); %><select name="classId"> <c:forEach var="c" items="${C}"> <!-- JSTL标签,列出多个下拉列表选项 --> <option value="${c.id}">${c.className}</option> </c:forEach> </select> </td> </tr> <tr> <td>介 绍:</td> <td><textarea rows="10" cols="20" name="introduction"></textarea></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="注册"></td> </tr> </table> </form> </body> </html>检查代码
这是一个 JSP 页面,用于用户注册。其中包含了 JSTL 标签库的使用,用于生成动态的下拉列表和复选框。代码中还涉及到了 DAO 层的调用,用于从数据库中获取班级和爱好列表。需要注意的是,代码中的一些注释是中文的,最好修改为英文,以便更好地维护和分享代码。此外,还需要检查代码中的所有路径和表单提交的地址是否正确。
阅读全文