Java 如何在JSP页面Struts2中显示数据表
所以我已经读了几天关于这个话题的书了,每次我想我理解它的时候,我又会感到困惑 所以我有:MySQL数据库、eclipse、tomcat apache、使用STRUTS2的GUI的开始 我正在为所述数据库设置gui,我想在JSP页面中显示一个数据表。所以我的问题是。。。我有很多问题,但一开始,我有一个表单,我有一个操作将我发送到JSP页面,我想在其中显示我的表。我想我会使用另一个操作来连接数据库并获取我的所有信息,但我不确定这是否有意义,我是否应该使用相同的操作 嗯。。。以下是我的代码: 获取数据的操作:Java 如何在JSP页面Struts2中显示数据表,java,database,jsp,struts2,datatable,Java,Database,Jsp,Struts2,Datatable,所以我已经读了几天关于这个话题的书了,每次我想我理解它的时候,我又会感到困惑 所以我有:MySQL数据库、eclipse、tomcat apache、使用STRUTS2的GUI的开始 我正在为所述数据库设置gui,我想在JSP页面中显示一个数据表。所以我的问题是。。。我有很多问题,但一开始,我有一个表单,我有一个操作将我发送到JSP页面,我想在其中显示我的表。我想我会使用另一个操作来连接数据库并获取我的所有信息,但我不确定这是否有意义,我是否应该使用相同的操作 嗯。。。以下是我的代码: 获取数据
package net.upsmon.struts2.action;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import com.opensymphony.xwork2.ActionSupport;
public class Table extends ActionSupport {
List tableRows=new ArrayList();
public String execute() throws InstantiationException, IllegalAccessException, ClassNotFoundException{
List tableInfo=new ArrayList();
Properties props = new Properties();
props.setProperty("user", "user");
props.setProperty("password", "pass");
props.setProperty("databaseName", "db");
String dbUrl="jdbc:mysql://db:3306/db";
String ret = ERROR;
Connection myCon = null;
try{
Class.forName ("com.mysql.jdbc.Driver").newInstance();
myCon = DriverManager.getConnection("jdbc:mysql://dburl:3306/mqmonitordb",props);
String dbQuery = "SELECT * FROM table";
PreparedStatement ps = myCon.prepareStatement(dbQuery);
ResultSet result=ps.executeQuery(dbQuery);
while(result.next()){
tableInfo.add(result.getString("raisedAlertId"));
tableInfo.add(result.getString("alertHostIP"));
tableInfo.add(result.getString("portNumber"));
tableInfo.add(result.getString("qMgrName"));
tableInfo.add(result.getString("alertType"));
tableInfo.add(result.getString("alertGroupName"));
tableInfo.add(result.getString("alertEntity"));
tableInfo.add(result.getString("maintMode"));
tableInfo.add(result.getString("alertCreatedTime"));
tableInfo.add(result.getString("alertRaisedTime"));
tableInfo.add(result.getString("alertAckFlag"));
tableRows.add(tableInfo);
tableInfo.clear();
}
//request.setAttribute("tableRows",tableRows);
}catch(SQLException sqe){
}catch(Exception e){
}
return "yay";
}
public List tableRows() {
return tableRows();
}
public void setTableRows(List tableRows) {
this.tableRows = tableRows;
}
}
JSP页面:
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<link type="text/css" rel="stylesheet" href="stylesheet.css" />
<title>Welcome</title>
</head>
<body>
<h2>
Welcome
</h2>
<table>
<thead>
<tr>
<th></th>
<th>column1</th>
<th>column2</th>
</tr>
</thead>
<tbody>
<s:iterator status="stat" value="tableRows">
<tr>
<td><s:property value="#stat.index+1"></s:property></td>
<td><s:property value="%{column1}"></s:property></td>
<td><s:property value="%{column2}"></s:property></td>
</tr>
</s:iterator>
</tbody>
</table>
<s:form action="logout" method="post" margin="auto">
<s:submit method="authenticate" key="label.logout" align="center" />
</s:form>
<s:form action="tolevelselector" method="post" margin="auto">
<s:submit method="authenticate" key="label.levelthree" align="center" />
</s:form>
</body>
</html>
欢迎
欢迎
专栏1
专栏2
任何建议都很好,谢谢……这个问题我不清楚。(不相关,但我强烈建议不要在行动中做所有的数据库工作。)如果不是在行动中,在哪里?我的主要问题是,如何调用该操作,或者如何直接从JSP页面获取所有信息。在服务对象中,或者至少在实用工具方法中。数据应该使用可公开访问的getter方法公开给视图层,然后在JSP中迭代。问题是什么?只是我真的不明白我该怎么做,我对这件事很陌生。你看过S2文档、教程、书籍等吗?向视图层公开数据非常简单,例如,为信息列表提供公共getter,并在视图中迭代该属性的名称。具体问题是什么?