📄 testaction.java
字号:
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.zte.webfile.action;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowCallbackHandler;
import com.zte.webfile.dto.FileDTO;
/**
* MyEclipse Struts Creation date: 04-04-2007
*
* XDoclet definition:
*
* @struts.action validate="true"
*/
public class TestAction extends Action {
/*
* Generated Methods
*/
/**
* Method execute
*
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
getFolder(request, response);
return null;
}
public void getFolder(HttpServletRequest request,
HttpServletResponse response) {
// 获得session
HttpSession session = request.getSession();
// 获得当前用户
String userName = (String) session.getAttribute("userName");
// 通过用户名获得用户id
// String sql = "select id from f_user where username=?";
// Object[] params = new Object[] { userName };
// Integer userId = (Integer) jdbcTemplate.queryForObject(sql, params,
// Integer.class);
// 通过用户名获得此用户名对应的跟文件夹的id
String sql_file = "select id from f_file where filename=?";
Object[] params1 = new Object[] { userName };
Integer fileid1 = (Integer) jdbcTemplate.queryForObject(sql_file,
params1, Integer.class);
// 存放文件夹信息的哈希表,哈希表的key为文件夹的名称,value为文件夹名称所对应的id
HashMap folderMap = new HashMap();
// 首先把跟文件夹信息放入folderMap
folderMap.put(userName, fileid1);
// 调用递归方法,把文件夹信息放入hashmap
getChildFolder(folderMap, userName, fileid1, userName);
}
// 递归某用户下的所有文件夹信息。
public void getChildFolder(HashMap folderMap, String userName,
Integer fileParent, String parentFolder) {
// 把获得的文件夹信息放入fileList中
final List fileList = new ArrayList();
// SQL
String sql = "select id,filename from f_file where isfolder=?,fileowner=?,fileparent=?";
// 参数列表
Object[] params = new Object[] { "0", userName, fileParent };
// int types[]=new int[]{Types.CHAR,Types.INTEGER,Types.INTEGER};
jdbcTemplate.query(sql, params, new RowCallbackHandler() {
public void processRow(ResultSet rs) throws SQLException {
// TODO 自动生成方法存根
FileDTO dto = new FileDTO();
dto.setId((Integer) rs.getObject(1));
dto.setFileName((String) rs.getObject(2));
fileList.add(dto);
}
});
// 遍历获得的子文件夹信息
if (fileList.size() == 0) {
return;
} else {
Iterator it = fileList.iterator();
while (it.hasNext()) {
// 获得每个文件夹
FileDTO dto = (FileDTO) it.next();
String folderExpName = parentFolder + "/" + dto.getFileName()
+ "/";
folderMap.put(folderExpName, dto.getId());
getChildFolder(folderMap, userName, dto.getId(), folderExpName);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -