コード例 #1
0
  @RequestMapping("/view")
  public void view(
      Model model,
      @RequestParam("id") String jar,
      @RequestParam(value = "clz", required = false) String clazzName) {

    clazzName = clazzName != null ? clazzName.replace('.', '/') : null;

    model.addAttribute("clzName", clazzName);
    model.addAttribute("id", jar);

    if (Database.get(jar) == null) {
      return;
    }

    FileItem path = (FileItem) Database.get(jar).getObj();
    try {
      ClassMap classMap =
          ClassMap.build(new JarFile(new File(path.getFullName()).getCanonicalPath()));

      classMap.rebuildConfig(new RenameConfig(), null);

      model.addAttribute("classMap", classMap);
      model.addAttribute("origName", path.getOrigName());

      // to find which package should open
      if (clazzName != null) {
        model.addAttribute("openPkg", classMap.getShortPackage(clazzName));
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
コード例 #2
0
 @RequestMapping(value = "download")
 public View download(@RequestParam("id") String jarid) {
   FileItem path = (FileItem) Database.get(jarid).getObj();
   StreamView view = null;
   try {
     File file = new File(path.getFullName());
     view = new StreamView("application/x-jar", new FileInputStream(file));
     view.setBufferSize(4 * 1024);
     view.setContentDisposition("attachment; filename=\"" + path.getOrigName() + "\"");
   } catch (FileNotFoundException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
   }
   return view;
 }