Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JSP页面Struts2中显示数据表_Java_Database_Jsp_Struts2_Datatable - Fatal编程技术网

Java 如何在JSP页面Struts2中显示数据表

Java 如何在JSP页面Struts2中显示数据表,java,database,jsp,struts2,datatable,Java,Database,Jsp,Struts2,Datatable,所以我已经读了几天关于这个话题的书了,每次我想我理解它的时候,我又会感到困惑 所以我有:MySQL数据库、eclipse、tomcat apache、使用STRUTS2的GUI的开始 我正在为所述数据库设置gui,我想在JSP页面中显示一个数据表。所以我的问题是。。。我有很多问题,但一开始,我有一个表单,我有一个操作将我发送到JSP页面,我想在其中显示我的表。我想我会使用另一个操作来连接数据库并获取我的所有信息,但我不确定这是否有意义,我是否应该使用相同的操作 嗯。。。以下是我的代码: 获取数据

所以我已经读了几天关于这个话题的书了,每次我想我理解它的时候,我又会感到困惑

所以我有: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,并在视图中迭代该属性的名称。具体问题是什么?