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

Posted

技术标签:

【中文标题】如何使用 Struts 编程从数据库打印数据并在 ftl 页面上显示【英文标题】:How to print data from database using Struts programming and to display on ftl page 【发布时间】:2015-09-30 05:51:49 【问题描述】:

我正在尝试使用 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和DESCRIPTION的内容应该打印在这个页面上

这里遇到了显示DESCRIPTION和POOLNAME的问题,如 图片,请在link 中找到图片,我没有得到适当的资源。

【问题讨论】:

这里可以将数据提取到 FTL 页面。问题是从数据库中获取数据作为列表并按以下代码获取数据

Pool Name Details.

$message #list>
但我必须显示我是否如图所示。请帮帮我 我不明白这个问题。 它很简单..我必须使用 struts 从 oracle 数据库中获取数据,并且我必须显示图像中给出的数据。先生没有任何资源来找到解决方案。所以请帮助我。这对我有很大的帮助。 通过上面的程序,我能够将数据提取到 ftl 页面,并将该数据作为列表获取。但我不知道如何对齐它。 您使用错误的数据结构将其传递给模板;你可以这样做,但我不会。使用具有适当字段的 DTO 并将 那些 放入列表中。 【参考方案1】:

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

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>

【讨论】:

以上是关于如何使用 Struts 编程从数据库打印数据并在 ftl 页面上显示的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式将 PDF 数据发送到打印机?

如何从网站获取数据并在 excel 页面对象模型中打印,数据驱动和页面工厂这是混合框架

从数据库中检索数据并在 json laravel 4 中打印它们

C编程:从文件中读取并在屏幕上打印

如何从文本文件创建二维数组并在 c 中打印到新文件

如何以编程方式从 iPhone/iPad 向以太网打印机发送数据?