java - 如何使用Struts编程打印数据库中的数据并显示在ftl页面上

标签 java html jdbc struts2 freemarker

我正在尝试使用 Struts 编程从数据库打印数据并显示在 ftl 页面上

public class DisplayAction{

private List<String> data = new ArrayList<String>();

public List<String> getData() {
    return data;
}

public void setData(List<String> data) {
    this.data = data;
}

public String execute() throws SQLException, ClassNotFoundException {

    DisplayUtilService du = new DisplayUtilService();
    ResultSet rs = du.method();

    while (rs.next()) {

        data.add(rs.getString(1));
        data.add(rs.getString(2));
        data.add(rs.getString(3));
        data.add(rs.getString(4));

    }

    // data.add("message");
    if (data.size() > 0)
        return "success";
    return "failure";

}

}

显示要在 Freemarker 模板页面上显示的 POOLNAME 和说明

private List<String> data = new ArrayList<String>();

public List<String> getData() {
    return data;
}

public void setData(List<String> data) {
    this.data = data;
}

public String execute() throws SQLException {

    DisplayUtilService du = new DisplayUtilService();
    ResultSet rs = du.poolName();

    while (rs.next()) {
        data.add(rs.getString("POOLNAME"));// poolname is one of the column
                                            // of table
        data.add(rs.getString("DESCRIPTION"));

    }

    if (data.size() > 0)
        return "success";enter code here
    return "failure";

}

}

该表 POOLNAME 和说明的内容应打印在此页上

这里面临显示描述和池名称的问题,如 图像,请在 link 中找到图像我没有获得适当的资源。

1

最佳答案

从db层返回的数据应该被结构化为对象。您不能仅使用 List<String>保存数据,因为您想以表格格式显示数据。创建一些对象来保存列值

public class Message {

    private String poolName;
    private String description;

    public Message (String poolName, String description){
       this.poolName = poolName;
       this.description = description;
    }

    public User getPoolName() {
        return poolName;
    }
    public String getDescription() {
        return description;
    }
}

更改数据结构

private List<Message> data = new ArrayList<Message>();

public List<Message> getData() {
    return data;
}

填写数据

while (rs.next()) {
    Message m = new Message(
    rs.getString("POOLNAME"),// poolname is one of the column
                                        // of table
    rs.getString("DESCRIPTION"));
    data.add(m);

}

如果要返回freemarker结果,action配置应该有对应的结果类型。

<action name="display" class="DisplayAction">
  <result type="freemarker">/messages.ftl</result>
</action>

结果文件包含一个表,其中显示每条记录的数据对象。

<table>
<tr>
    <td>POOLNAME</td>
    <td>DESCRIPTION</td>
</tr>
<@s.iterator value="%{data}">
<tr>
    <td>
        <@s.property value="%{poolName}" />
    </td>
    <td>
        <@s.property value="%{description}" />
    </td>
</tr>
</@s.iterator>
</table>

关于java - 如何使用Struts编程打印数据库中的数据并显示在ftl页面上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31358412/

相关文章:

java - 是否有一个标准的 Java List 实现不允许向其添加 null?

javascript - onClick 方法适用于第二次单击。但它应该在第一次点击时起作用

java - 一种操作插入程序的优化算法

java - 布局和子类

java - 在 View 绑定(bind)中返回 findViewById()

javascript - 从 JavaScript 函数返回到 HTML Body

html - 在 Bootstrap 中更改类 'table table-condensed' 的水平线颜色

java - 通过 JDBC River 自动更新 Elastic Search 中的索引

java - SELECT 查询的性能 - Oracle/JDBC

java - MySQL : Communication Link failure error and telnet localhost 3306 : Connection close