1

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 を返すことを確認しています。さて、私のコードに問題はありますか?前もって感謝します。

4

0 に答える 0