コード例 #1
0
ファイル: DownloadTag.java プロジェクト: gjward/filemanager
  /*
   * (non-Javadoc)
   *
   * @see javax.servlet.jsp.tagext.TagSupport#doStartTag()
   */
  @Override
  public int doStartTag() throws JspException {

    HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
    try {
      Map<String, Object> result = null;

      if ("download".equalsIgnoreCase(mode)) {
        result = download();
      } else {
        result = new HashMap<String, Object>();
        result.put("Error", "Missing or invalid mode parameter");
        result.put("Code", -1);
      }

      if (logger.isInfoEnabled()) {
        logger.info(mapper.writeValueAsString(result));
      }

      mapper.writeValue(pageContext.getOut(), result);
    } catch (JsonMappingException jme) {
      if (logger.isErrorEnabled()) {
        logger.error(jme.getMessage());
        logger.error(jme.getStackTrace());
      }
      throw new JspException(jme);
    } catch (JsonGenerationException jge) {
      if (logger.isErrorEnabled()) {
        logger.error(jge.getMessage());
        logger.error(jge.getStackTrace());
      }
      throw new JspException(jge);
    } catch (IOException ioe) {
      if (logger.isErrorEnabled()) {
        logger.error(ioe.getMessage());
        logger.error(ioe.getStackTrace());
      }
      throw new JspException(ioe);
    }

    return TagSupport.SKIP_BODY;
  }