게시판을 구현중 skin 디렉토리의 폴더 목록을 뽑아 와서 Select box에 보여줘야 될 경우가
발생 했다.
이것 저것 테스트 해본 결과..
org.apache.struts.util.LabelValueBean 을 이용하여 lavel, value값으로 ArrayList에 넣고
iterate 시켰다..
-천천히 보면 누구나 이해 할 수 있음 ... 더 좋은 방법이 있다면..
scormrte@gmail.com 이나 뎃글로 ... 조언 부탁 드립니다.
간단 한 예로
- action
ArrayList skinList = futil.getDirectoryList(skin_path);
skinList = ConvertLableValueBean.convert_from_ArrayList(skinList);
request.setAttribute("skinList",skinList);
-jsp page
<select name="bcf_skin">
<logic:iterate name="skinList" type="org.apache.struts.util.LabelValueBean" id="skin_vo">
<option value="test"><bean:write name="skin_vo" property="value" /></option>
</logic:iterate>
</select>
-사용자 정의 클레스
import org.apache.struts.util.LabelValueBean;
import java.util.ArrayList;
import java.util.List;
public class ConvertLableValueBean {
public static ArrayList convert_from_ArrayList(ArrayList targetList){
ArrayList list = new ArrayList();
for(int i=0; i<targetList.size(); i++){
list.add(new LabelValueBean( targetList.get(i).toString(), targetList.get(i).toString() ));
}
return (ArrayList)list;
}
public static ArrayList convert_from_ArrayList(ArrayList LabelList, ArrayList LabelValue){
ArrayList list = new ArrayList();
for(int i=0; i<LabelList.size(); i++){
list.add(new LabelValueBean( LabelList.get(i).toString(), LabelValue.get(i).toString() ));
}
return (ArrayList)list;
}
}
-----------------------------------------------------------------------------------
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
import java.util.ArrayList;
public class FileUtil {
private ArrayList list=null;
private File dir;
private File[] dirlist;
public FileUtil(){
list = new ArrayList();
}
//directory filter
private FileFilter getDirectoryFilter(){
FileFilter fileFilter = new FileFilter() {
public boolean accept(File file) {
return file.isDirectory();
}
};
return fileFilter;
}
//file filter
private FilenameFilter getFileFilter(){
FilenameFilter filter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return !name.startsWith(".");
}
};
return filter;
}
public ArrayList getdirlist(String path){
dir = new File(path);
conv_fileArry_to_list(dir.listFiles(getFileFilter()));
return list;
}
public ArrayList getDirectoryList(String path){
dir = new File(path);
conv_fileArry_to_list(dir.listFiles(getDirectoryFilter()));
return list;
}
private void conv_fileArry_to_list(File[] dirlist){
this.list.clear();
for (File flist : dirlist){
this.list.add(flist.getName());
}
}
}