Пример #1
0
  public void setLanguage(String value, Node n, ErrorDispatcher err, boolean pagedir)
      throws JasperException {

    if (!"java".equalsIgnoreCase(value)) {
      if (pagedir) err.jspError(n, "jsp.error.page.language.nonjava");
      else err.jspError(n, "jsp.error.tag.language.nonjava");
    }

    language = value;
  }
Пример #2
0
  /*
   * isELIgnored
   */
  public void setIsELIgnored(String value, Node n, ErrorDispatcher err, boolean pagedir)
      throws JasperException {

    if ("true".equalsIgnoreCase(value)) isELIgnored = true;
    else if ("false".equalsIgnoreCase(value)) isELIgnored = false;
    else {
      if (pagedir) err.jspError(n, "jsp.error.page.invalid.iselignored");
      else err.jspError(n, "jsp.error.tag.invalid.iselignored");
    }

    isELIgnoredValue = value;
  }
Пример #3
0
  /*
   * buffer
   */
  public void setBufferValue(String value, Node n, ErrorDispatcher err) throws JasperException {

    if ("none".equalsIgnoreCase(value)) buffer = 0;
    else {
      if (value == null || !value.endsWith("kb")) err.jspError(n, "jsp.error.page.invalid.buffer");
      try {
        Integer k = new Integer(value.substring(0, value.length() - 2));
        buffer = k.intValue() * 1024;
      } catch (NumberFormatException e) {
        err.jspError(n, "jsp.error.page.invalid.buffer");
      }
    }

    bufferValue = value;
  }
Пример #4
0
    private void setScriptingVars(Node.CustomTag n, int scope) throws JasperException {

      TagVariableInfo[] tagVarInfos = n.getTagVariableInfos();
      VariableInfo[] varInfos = n.getVariableInfos();
      if (tagVarInfos.length == 0 && varInfos.length == 0) {
        return;
      }

      Vector vec = new Vector();

      Integer ownRange = null;
      if (scope == VariableInfo.AT_BEGIN || scope == VariableInfo.AT_END) {
        Node.CustomTag parent = n.getCustomTagParent();
        if (parent == null) ownRange = MAX_SCOPE;
        else ownRange = parent.getNumCount();
      } else {
        // NESTED
        ownRange = n.getNumCount();
      }

      if (varInfos.length > 0) {
        for (int i = 0; i < varInfos.length; i++) {
          if (varInfos[i].getScope() != scope || !varInfos[i].getDeclare()) {
            continue;
          }
          String varName = varInfos[i].getVarName();

          Integer currentRange = scriptVars.get(varName);
          if (currentRange == null || ownRange.compareTo(currentRange) > 0) {
            scriptVars.put(varName, ownRange);
            vec.add(varInfos[i]);
          }
        }
      } else {
        for (int i = 0; i < tagVarInfos.length; i++) {
          if (tagVarInfos[i].getScope() != scope || !tagVarInfos[i].getDeclare()) {
            continue;
          }
          String varName = tagVarInfos[i].getNameGiven();
          if (varName == null) {
            varName = n.getTagData().getAttributeString(tagVarInfos[i].getNameFromAttribute());
            if (varName == null) {
              err.jspError(
                  n,
                  "jsp.error.scripting.variable.missing_name",
                  tagVarInfos[i].getNameFromAttribute());
            }
          }

          Integer currentRange = scriptVars.get(varName);
          if (currentRange == null || ownRange.compareTo(currentRange) > 0) {
            scriptVars.put(varName, ownRange);
            vec.add(tagVarInfos[i]);
          }
        }
      }

      n.setScriptingVars(vec, scope);
    }
Пример #5
0
  /*
   * isErrorPage
   */
  public void setIsErrorPage(String value, Node n, ErrorDispatcher err) throws JasperException {

    if ("true".equalsIgnoreCase(value)) isErrorPage = true;
    else if ("false".equalsIgnoreCase(value)) isErrorPage = false;
    else err.jspError(n, "jsp.error.page.invalid.iserrorpage");

    isErrorPageValue = value;
  }
Пример #6
0
  /*
   * autoFlush
   */
  public void setAutoFlush(String value, Node n, ErrorDispatcher err) throws JasperException {

    if ("true".equalsIgnoreCase(value)) isAutoFlush = true;
    else if ("false".equalsIgnoreCase(value)) isAutoFlush = false;
    else err.jspError(n, "jsp.error.autoFlush.invalid");

    autoFlush = value;
  }
Пример #7
0
  /*
   * session
   */
  public void setSession(String value, Node n, ErrorDispatcher err) throws JasperException {

    if ("true".equalsIgnoreCase(value)) isSession = true;
    else if ("false".equalsIgnoreCase(value)) isSession = false;
    else err.jspError(n, "jsp.error.page.invalid.session");

    session = value;
  }
Пример #8
0
  private void init(ErrorDispatcher err) throws JasperException {
    if (initialized) return;

    InputStream is = ctxt.getResourceAsStream(TAG_PLUGINS_XML);
    if (is == null) return;

    TreeNode root = (new ParserUtils()).parseXMLDocument(TAG_PLUGINS_XML, is);
    if (root == null) {
      return;
    }

    if (!TAG_PLUGINS_ROOT_ELEM.equals(root.getName())) {
      err.jspError("jsp.error.plugin.wrongRootElement", TAG_PLUGINS_XML, TAG_PLUGINS_ROOT_ELEM);
    }

    tagPlugins = new HashMap();
    Iterator pluginList = root.findChildren("tag-plugin");
    while (pluginList.hasNext()) {
      TreeNode pluginNode = (TreeNode) pluginList.next();
      TreeNode tagClassNode = pluginNode.findChild("tag-class");
      if (tagClassNode == null) {
        // Error
        return;
      }
      String tagClass = tagClassNode.getBody().trim();
      TreeNode pluginClassNode = pluginNode.findChild("plugin-class");
      if (pluginClassNode == null) {
        // Error
        return;
      }

      String pluginClassStr = pluginClassNode.getBody();
      TagPlugin tagPlugin = null;
      try {
        Class pluginClass = Class.forName(pluginClassStr);
        tagPlugin = (TagPlugin) pluginClass.newInstance();
      } catch (Exception e) {
        throw new JasperException(e);
      }
      if (tagPlugin == null) {
        return;
      }
      tagPlugins.put(tagClass, tagPlugin);
    }
    initialized = true;
  }