jquery ファイル ツリーを使用してローカル ファイル システムを表示していますが、問題が発生しました。プロジェクトで maven+jersey+guice を使用し、バージョン jsp を変更し、コントローラーでクラスを作成しました。コードは次のとおりです。
@Path("/monurl")
@POST
@Produces({MediaType.TEXT_HTML})
public Response getGsp(@Context HttpServletRequest request) throws UnsupportedEncodingException
{
StringBuffer buffer = new StringBuffer();
String dir = request.getParameter("dir");
if (dir == null) {
return Response.ok("").build();
}
if (dir.charAt(dir.length()-1) == '\\') {
dir = dir.substring(0, dir.length()-1) + "/";
} else if (dir.charAt(dir.length()-1) != '/') {
dir += "/";
}
dir = java.net.URLDecoder.decode(dir, "UTF-8");
if (new File(dir).exists()) {
String[] files = new File(dir).list(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.charAt(0) != '.';
}
});
Arrays.sort(files, String.CASE_INSENSITIVE_ORDER);
buffer.append("<ul class=\"jqueryFileTree\" style=\"display: none;\">");
// All dirs
for (String file : files) {
if (new File(dir, file).isDirectory()) {
buffer.append("<li class=\"directory collapsed\"><a href=\"#\" rel=\"" + dir + file + "/\">"
+ file + "</a></li>");
}
}
// All files
for (String file : files) {
if (!new File(dir, file).isDirectory()) {
int dotIndex = file.lastIndexOf('.');
String ext = dotIndex > 0 ? file.substring(dotIndex + 1) : "";
buffer.append("<li class=\"file ext_" + ext + "\"><a href=\"#\" rel=\"" + dir + file + "\">"
+ file + "</a></li>");
}
}
buffer.append("</ul>");
}
log.debug("Response content {}", buffer.toString());
return Response.ok(buffer.toString()).build();
}
コード JavaScript の場合:
$(document).ready( function() {
$('#JQueryFTD_Demo').fileTree({
root: '/home/y.zhang/kernely/kernely/work/',
script: '/ged/monurl',
expandSpeed: 1000,
collapseSpeed: 1000,
multiFolder: true
}, function(file) {
alert(file);
});
});
</script>
しかし、私は常にフォルダーをトラバースするという問題を抱えており、firebug から、サーバーが 200 OK 128ms を返すことを確認しています。さて、私のコードに問題はありますか?前もって感謝します。