java 将数组传给 jsp_java数组传给jsp表格
时间: 2024-01-15 22:03:09 浏览: 33
可以使用 JSP 的内置对象 request 对象将数组传递给 JSP 页面,并在 JSP 页面中使用 JSTL(JSP Standard Tag Library)标签库中的 forEach 标签进行遍历,然后将遍历的结果输出为 HTML 的表格。
下面是一个示例代码:
在 Java 中:
```java
String[][] arr = {{"a1", "b1", "c1"}, {"a2", "b2", "c2"}, {"a3", "b3", "c3"}};
request.setAttribute("arr", arr);
```
在 JSP 中:
```jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
...
<table>
<c:forEach var="row" items="${arr}">
<tr>
<c:forEach var="cell" items="${row}">
<td>${cell}</td>
</c:forEach>
</tr>
</c:forEach>
</table>
```
这段代码会输出一个包含数组 arr 中所有元素的 HTML 表格。
相关问题
java从数据库读取多行数据,将数据放在数组中传给 jsp_java数组传给jsp表格
在 Java 中从数据库中读取多行数据可以使用 JDBC,读取数据后将其存储到一个二维数组中,然后将数组作为参数传递给 JSP 页面,最后在 JSP 页面中使用 JSTL 标签库中的 forEach 标签进行遍历,将遍历的结果输出为 HTML 的表格。
下面是一个示例代码:
在 Java 中:
```java
// 假设从数据库中读取到的数据存储在 List<List<String>> 类型的变量 dataList 中
List<List<String>> dataList = ...;
String[][] arr = new String[dataList.size()][];
for (int i = 0; i < dataList.size(); i++) {
List<String> row = dataList.get(i);
arr[i] = new String[row.size()];
for (int j = 0; j < row.size(); j++) {
arr[i][j] = row.get(j);
}
}
request.setAttribute("arr", arr);
```
在 JSP 中:
```jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
...
<table>
<c:forEach var="row" items="${arr}">
<tr>
<c:forEach var="cell" items="${row}">
<td>${cell}</td>
</c:forEach>
</tr>
</c:forEach>
</table>
```
这段代码会输出一个包含从数据库中读取到的所有数据的 HTML 表格。
jsp js 将表格中的数据传到servlet中
你使用 JavaScript 来获取表格数据,并将其传递到 Servlet 中。以下是一个示例:
1. 在 HTML 页面中添加一个表格和一个按钮,以便用户可以点击该按钮来触发表单提交:
```html
<table id="myTable">
<tr>
<th>Name</th>
<th>Age</th>
</tr>
<tr>
<td>John</td>
<td>25</td>
</tr>
<tr>
<td>Jane</td>
<td>30</td>
</tr>
</table>
<button onclick="submitForm()">Submit</button>
```
2. 在 JavaScript 中编写一个名为 `submitForm()` 的函数,该函数将从表格中获取数据并将其作为表单数据提交到 Servlet:
```javascript
function submitForm() {
// 获取表格元素
var table = document.getElementById("myTable");
// 创建空数组以保存表格数据
var data = [];
// 获取表头行,并将表头列名添加到数据数组中
var headers = [];
for (var i = 0; i < table.rows[0].cells.length; i++) {
headers[i] = table.rows[0].cells[i].innerHTML.toLowerCase();
}
data.push(headers);
// 获取数据行,并将每行数据添加到数据数组中
for (var i = 1; i < table.rows.length; i++) {
var row = table.rows[i];
var rowData = [];
for (var j = 0; j < row.cells.length; j++) {
rowData[j] = row.cells[j].innerHTML;
}
data.push(rowData);
}
// 将数据数组转换为表单数据格式
var formData = new FormData();
formData.append("data", JSON.stringify(data));
// 创建 XMLHttpRequest 对象并发送表单数据到 Servlet
var xhr = new XMLHttpRequest();
xhr.open("POST", "yourServletUrl", true);
xhr.send(formData);
}
```
3. 在 Servlet 中读取表单数据并对其进行处理:
```java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 读取表单数据
String jsonData = request.getParameter("data");
JSONArray jsonArray = new JSONArray(jsonData);
// 处理表单数据
for (int i = 1; i < jsonArray.length(); i++) {
JSONArray rowData = jsonArray.getJSONArray(i);
String name = rowData.getString(0);
int age = rowData.getInt(1);
// do something with name and age...
}
// 返回响应
response.setContentType("text/plain");
response.getWriter().write("Data received!");
}
```
以上示例中,我们使用了 JavaScript 的 DOM 操作来获取表格数据,并使用了 XMLHttpRequest 对象将数据提交到 Servlet。在 Servlet 中,我们使用了 JSON 库来解析表单数据,并对其进行处理。