当前位置: 代码迷 >> Java Web开发 >> list结果集的储存结构
  详细解决方案

list结果集的储存结构

热度:9835   发布时间:2013-02-25 21:11:19.0
list结果集的存储结构
通常框架里对数据库查询的结果集,封装成list或者map的比较多,也比较通用,最近做一个页面需要我自己在后台把一个list构建出来,然后再页面上显示,个人认为对于数据库里查询结果集list似乎是个二维数组,所以在建这个list的时候也是按照二维数组去构建的,java代码如下:
public String downloadInformation() throws IOException
{
String path = this.getRequest().getSession().getServletContext().getRealPath("/")+"downloadinformation/";;
File file = new File(path);
String[] files = file.list();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
String[][] s = new String[files.length][2]; 
for(int i = 0;i<files.length;i++)
{
File readfile = new File(file + "/" + files[i]);
String filePath = readfile.getPath();
String fileName = filePath.substring(filePath.lastIndexOf("\\")+1,filePath.length());
String fileDate = sdf.format(readfile.lastModified());
s[i][0] = fileName;
s[i][1] = fileDate;
}
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < s.length; i++) 
{
for (int j = 0; j < s[i].length; j++) 
{
list.add(s[i][j]);
}
}
fileList = list;
return SUCCESS;
}
测试时数组s的第二维如果不指定,list.add(s[i][j])这一句就会报错,然后我指定了第二维的长度为2,但是页面我用通常的方法却拿不到结果集,
<c:forEach items="${fileList}" var="list">
<tr>
<td style="text-align: center" height="30" nowrap="nowrap" >${list[0]}</td>
<td style="text-align: center" height="30" nowrap="nowrap" >${list[1]}</td>
</tr>
</c:forEach>
谁能给我解释下我这么封的list跟我数据库查询出来的结果集list有什么区别。小弟不胜感激。

------解决方案--------------------------------------------------------
你这根本就没有必要用二维数组啊,你不就是想把fileName和fileDate传至前台么,
用个 | 拼一下传至前台再split取值就可以了啊。。。

改成类似这样试试。。。

Java code
        ArrayList<String> list = new ArrayList<String>();        for (int i = 0; i < files.length; i++) {            File readfile = new File(file + "/" + files[i]);            String filePath = readfile.getPath();            String fileName = filePath.substring(filePath.lastIndexOf("\\") + 1, filePath.length());            String fileDate = sdf.format(readfile.lastModified());            list.add(fileName + "|" + fileDate);        }        fileList = list;        return SUCCESS;
------解决方案--------------------------------------------------------
用对象,把数据封装成对象,如下,
Java code
public class Test{        private String fileName;    private String fileDate;    public String getFileName() {        return fileName;    }    public void setFileName(String fileName) {        this.fileName = fileName;    }    public String getFileDate() {        return fileDate;    }    public void setFileDate(String fileDate) {        this.fileDate = fileDate;    }}
------解决方案--------------------------------------------------------
<c:forEach items="${fileList}" var="list" vars>
<tr>
<td style="text-align: center" height="30" nowrap="nowrap" >${list[0][0]}</td>
<td style="text-align: center" height="30" nowrap="nowrap" >${list[1][0]}</td>
</tr>
</c:forEach>
这样试试
  相关解决方案