@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(); } }
@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; }