当前位置: 首页>>代码示例>>Java>>正文


Java TagPluginContext.generateAttribute方法代码示例

本文整理汇总了Java中org.apache.jasper.compiler.tagplugin.TagPluginContext.generateAttribute方法的典型用法代码示例。如果您正苦于以下问题:Java TagPluginContext.generateAttribute方法的具体用法?Java TagPluginContext.generateAttribute怎么用?Java TagPluginContext.generateAttribute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.jasper.compiler.tagplugin.TagPluginContext的用法示例。


在下文中一共展示了TagPluginContext.generateAttribute方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: doTag

import org.apache.jasper.compiler.tagplugin.TagPluginContext; //导入方法依赖的package包/类
@Override
public void doTag(TagPluginContext ctxt) {
    String condV = ctxt.getTemporaryVariableName();
    ctxt.generateJavaSource("boolean " + condV + "=");
    ctxt.generateAttribute("test");
    ctxt.generateJavaSource(";");
    if (ctxt.isAttributeSpecified("var")) {
        String scope = "PageContext.PAGE_SCOPE";
        if (ctxt.isAttributeSpecified("scope")) {
            String scopeStr = ctxt.getConstantAttribute("scope");
            if ("request".equals(scopeStr)) {
                scope = "PageContext.REQUEST_SCOPE";
            } else if ("session".equals(scopeStr)) {
                scope = "PageContext.SESSION_SCOPE";
            } else if ("application".equals(scopeStr)) {
                scope = "PageContext.APPLICATION_SCOPE";
            }
        }
        ctxt.generateJavaSource("_jspx_page_context.setAttribute(");
        ctxt.generateAttribute("var");
        ctxt.generateJavaSource(", new Boolean(" + condV + ")," + scope + ");");
    }
    ctxt.generateJavaSource("if (" + condV + "){");
    ctxt.generateBody();
    ctxt.generateJavaSource("}");
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:27,代码来源:If.java

示例2: doTag

import org.apache.jasper.compiler.tagplugin.TagPluginContext; //导入方法依赖的package包/类
@Override
public void doTag(TagPluginContext ctxt) {
	// Get the parent context to determine if this is the first <c:when>
	TagPluginContext parentContext = ctxt.getParentContext();
	if (parentContext == null) {
		ctxt.dontUseTagPlugin();
		return;
	}

	if ("true".equals(parentContext.getPluginAttribute("hasBeenHere"))) {
		ctxt.generateJavaSource("} else if(");
		// See comment below for the reason we generate the extra "}" here.
	} else {
		ctxt.generateJavaSource("if(");
		parentContext.setPluginAttribute("hasBeenHere", "true");
	}
	ctxt.generateAttribute("test");
	ctxt.generateJavaSource("){");
	ctxt.generateBody();

	// We don't generate the closing "}" for the "if" here because there
	// may be whitespaces in between <c:when>'s. Instead we delay
	// generating it until the next <c:when> or <c:otherwise> or
	// <c:choose>
}
 
开发者ID:how2j,项目名称:lazycat,代码行数:26,代码来源:When.java

示例3: doTag

import org.apache.jasper.compiler.tagplugin.TagPluginContext; //导入方法依赖的package包/类
@Override
public void doTag(TagPluginContext ctxt) {
    // Get the parent context to determine if this is the first <c:when>
    TagPluginContext parentContext = ctxt.getParentContext();
    if (parentContext == null) {
        ctxt.dontUseTagPlugin();
        return;
    }
    
    if ("true".equals(parentContext.getPluginAttribute("hasBeenHere"))) {
        ctxt.generateJavaSource("} else if(");
        // See comment below for the reason we generate the extra "}" here.
    }
    else {
        ctxt.generateJavaSource("if(");
        parentContext.setPluginAttribute("hasBeenHere", "true");
    }
    ctxt.generateAttribute("test");
    ctxt.generateJavaSource("){");
    ctxt.generateBody();
    
    // We don't generate the closing "}" for the "if" here because there
    // may be whitespaces in between <c:when>'s.  Instead we delay
    // generating it until the next <c:when> or <c:otherwise> or
    // <c:choose>
}
 
开发者ID:sunmingshuai,项目名称:apache-tomcat-7.0.73-with-comment,代码行数:27,代码来源:When.java

示例4: doTag

import org.apache.jasper.compiler.tagplugin.TagPluginContext; //导入方法依赖的package包/类
@Override
public void doTag(TagPluginContext ctxt) {
	String condV = ctxt.getTemporaryVariableName();
	ctxt.generateJavaSource("boolean " + condV + "=");
	ctxt.generateAttribute("test");
	ctxt.generateJavaSource(";");
	if (ctxt.isAttributeSpecified("var")) {
		String scope = "PageContext.PAGE_SCOPE";
		if (ctxt.isAttributeSpecified("scope")) {
			String scopeStr = ctxt.getConstantAttribute("scope");
			if ("request".equals(scopeStr)) {
				scope = "PageContext.REQUEST_SCOPE";
			} else if ("session".equals(scopeStr)) {
				scope = "PageContext.SESSION_SCOPE";
			} else if ("application".equals(scopeStr)) {
				scope = "PageContext.APPLICATION_SCOPE";
			}
		}
		ctxt.generateJavaSource("_jspx_page_context.setAttribute(");
		ctxt.generateAttribute("var");
		ctxt.generateJavaSource(", new Boolean(" + condV + ")," + scope + ");");
	}
	ctxt.generateJavaSource("if (" + condV + "){");
	ctxt.generateBody();
	ctxt.generateJavaSource("}");
}
 
开发者ID:how2j,项目名称:lazycat,代码行数:27,代码来源:If.java

示例5: doTag

import org.apache.jasper.compiler.tagplugin.TagPluginContext; //导入方法依赖的package包/类
@Override
public void doTag(TagPluginContext ctxt) {
    // Get the parent context to determine if this is the first <c:when>
    TagPluginContext parentContext = ctxt.getParentContext();
    if (parentContext == null) {
        ctxt.dontUseTagPlugin();
        return;
    }

    if ("true".equals(parentContext.getPluginAttribute("hasBeenHere"))) {
        ctxt.generateJavaSource("} else if(");
        // See comment below for the reason we generate the extra "}" here.
    }
    else {
        ctxt.generateJavaSource("if(");
        parentContext.setPluginAttribute("hasBeenHere", "true");
    }
    ctxt.generateAttribute("test");
    ctxt.generateJavaSource("){");
    ctxt.generateBody();

    // We don't generate the closing "}" for the "if" here because there
    // may be whitespaces in between <c:when>'s.  Instead we delay
    // generating it until the next <c:when> or <c:otherwise> or
    // <c:choose>
}
 
开发者ID:nkasvosve,项目名称:beyondj,代码行数:27,代码来源:When.java

示例6: doTag

import org.apache.jasper.compiler.tagplugin.TagPluginContext; //导入方法依赖的package包/类
@Override
public void doTag(TagPluginContext ctxt) {
    
    String index = null;
    
    boolean hasVarStatus = ctxt.isAttributeSpecified("varStatus");
    if (hasVarStatus) {
        ctxt.dontUseTagPlugin();
        return;
    }
    
    hasVar = ctxt.isAttributeSpecified("var");
    hasBegin = ctxt.isAttributeSpecified("begin");
    hasEnd = ctxt.isAttributeSpecified("end");
    hasStep = ctxt.isAttributeSpecified("step");
    
    boolean hasItems = ctxt.isAttributeSpecified("items");
    if (hasItems) {
        doCollection(ctxt);
        return;
    }
    
    // We must have a begin and end attributes
    index = ctxt.getTemporaryVariableName();
    ctxt.generateJavaSource("for (int " + index + " = ");
    ctxt.generateAttribute("begin");
    ctxt.generateJavaSource("; " + index + " <= ");
    ctxt.generateAttribute("end");
    if (hasStep) {
        ctxt.generateJavaSource("; " + index + "+=");
        ctxt.generateAttribute("step");
        ctxt.generateJavaSource(") {");
    }
    else {
        ctxt.generateJavaSource("; " + index + "++) {");
    }
    
    // If var is specified and the body contains an EL, then sycn
    // the var attribute
    if (hasVar /* && ctxt.hasEL() */) {
        ctxt.generateJavaSource("_jspx_page_context.setAttribute(");
        ctxt.generateAttribute("var");
        ctxt.generateJavaSource(", String.valueOf(" + index + "));");
    }
    ctxt.generateBody();
    ctxt.generateJavaSource("}");
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:48,代码来源:ForEach.java

示例7: doTag

import org.apache.jasper.compiler.tagplugin.TagPluginContext; //导入方法依赖的package包/类
@Override
public void doTag(TagPluginContext ctxt) {
    
    //don't support the body content
    
    //define names of all the temp variables
    String nameName = ctxt.getTemporaryVariableName();
    String valueName = ctxt.getTemporaryVariableName();
    String urlName = ctxt.getTemporaryVariableName();
    String encName = ctxt.getTemporaryVariableName();
    String index = ctxt.getTemporaryVariableName();
    
    //if the param tag has no parents, throw a exception
    TagPluginContext parent = ctxt.getParentContext();
    if(parent == null){
        ctxt.generateJavaSource(" throw new JspTagExcption" +
        "(\"&lt;param&gt; outside &lt;import&gt; or &lt;urlEncode&gt;\");");
        return;
    }
    
    //get the url string before adding this param
    ctxt.generateJavaSource("String " + urlName + " = " +
    "(String)pageContext.getAttribute(\"url_without_param\");");
    
    //get the value of "name"
    ctxt.generateJavaSource("String " + nameName + " = ");
    ctxt.generateAttribute("name");
    ctxt.generateJavaSource(";");
    
    //if the "name" is null then do nothing.
    //else add such string "name=value" to the url.
    //and the url should be encoded
    ctxt.generateJavaSource("if(" + nameName + " != null && !" + nameName + ".equals(\"\")){");
    ctxt.generateJavaSource("    String " + valueName + " = ");
    ctxt.generateAttribute("value");
    ctxt.generateJavaSource(";");
    ctxt.generateJavaSource("    if(" + valueName + " == null) " + valueName + " = \"\";");
    ctxt.generateJavaSource("    String " + encName + " = pageContext.getResponse().getCharacterEncoding();");
    ctxt.generateJavaSource("    " + nameName + " = java.net.URLEncoder.encode(" + nameName + ", " + encName + ");");
    ctxt.generateJavaSource("    " + valueName + " = java.net.URLEncoder.encode(" + valueName + ", " + encName + ");");
    ctxt.generateJavaSource("    int " + index + ";");
    ctxt.generateJavaSource("    " + index + " = " + urlName + ".indexOf(\'?\');");
    //if the current param is the first one, add a "?" ahead of it
    //else add a "&" ahead of it
    ctxt.generateJavaSource("    if(" + index + " == -1){");
    ctxt.generateJavaSource("        " + urlName + " = " + urlName + " + \"?\" + " + nameName + " + \"=\" + " + valueName + ";");
    ctxt.generateJavaSource("    }else{");
    ctxt.generateJavaSource("        " + urlName + " = " + urlName + " + \"&\" + " + nameName + " + \"=\" + " + valueName + ";");
    ctxt.generateJavaSource("    }");
    ctxt.generateJavaSource("    pageContext.setAttribute(\"url_without_param\"," + urlName + ");");
    ctxt.generateJavaSource("}");
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:53,代码来源:Param.java

示例8: doTag

import org.apache.jasper.compiler.tagplugin.TagPluginContext; //导入方法依赖的package包/类
@Override
public void doTag(TagPluginContext ctxt) {
    
    //flags
    boolean hasVar, hasContext, hasScope;
    
    //init flags
    hasVar = ctxt.isAttributeSpecified("var");
    hasContext = ctxt.isAttributeSpecified("context");
    hasScope = ctxt.isAttributeSpecified("scope");
    
    //define name of the temp variables
    String valueName = ctxt.getTemporaryVariableName();
    String contextName = ctxt.getTemporaryVariableName();
    String baseUrlName = ctxt.getTemporaryVariableName();
    String resultName = ctxt.getTemporaryVariableName();
    String responseName = ctxt.getTemporaryVariableName();
    
    //get the scope
    String strScope = "page";
    if(hasScope){
        strScope = ctxt.getConstantAttribute("scope");
    }
    int iScope = Util.getScope(strScope);
    
    //get the value
    ctxt.generateJavaSource("String " + valueName + " = ");
    ctxt.generateAttribute("value");
    ctxt.generateJavaSource(";");
    
    //get the context
    ctxt.generateJavaSource("String " + contextName + " = null;");
    if(hasContext){
        ctxt.generateJavaSource(contextName + " = ");
        ctxt.generateAttribute("context");
        ctxt.generateJavaSource(";");
    }
    
    //get the raw url
    ctxt.generateJavaSource("String " + baseUrlName + " = " +
            "org.apache.jasper.tagplugins.jstl.Util.resolveUrl(" + valueName + ", " + contextName + ", pageContext);");
    ctxt.generateJavaSource("pageContext.setAttribute" +
            "(\"url_without_param\", " + baseUrlName + ");");
    
    //add params
    ctxt.generateBody();
    
    ctxt.generateJavaSource("String " + resultName + " = " +
    "(String)pageContext.getAttribute(\"url_without_param\");");
    ctxt.generateJavaSource("pageContext.removeAttribute(\"url_without_param\");");
    
    //if the url is relative, encode it
    ctxt.generateJavaSource("if(!org.apache.jasper.tagplugins.jstl.Util.isAbsoluteUrl(" + resultName + ")){");
    ctxt.generateJavaSource("    HttpServletResponse " + responseName + " = " +
    "((HttpServletResponse) pageContext.getResponse());");
    ctxt.generateJavaSource("    " + resultName + " = "
            + responseName + ".encodeURL(" + resultName + ");");
    ctxt.generateJavaSource("}");
    
    //if "var" is specified, the url string store in the attribute var defines
    if(hasVar){
        String strVar = ctxt.getConstantAttribute("var");
        ctxt.generateJavaSource("pageContext.setAttribute" +
                "(\"" + strVar + "\", " + resultName + ", " + iScope + ");");
        
        //if var is not specified, just print out the url string
    }else{
        ctxt.generateJavaSource("try{");
        ctxt.generateJavaSource("    pageContext.getOut().print(" + resultName + ");");
        ctxt.generateJavaSource("}catch(java.io.IOException ex){");
        ctxt.generateJavaSource("    throw new JspTagException(ex.toString(), ex);");
        ctxt.generateJavaSource("}");
    }
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:75,代码来源:Url.java

示例9: doTag

import org.apache.jasper.compiler.tagplugin.TagPluginContext; //导入方法依赖的package包/类
@Override
public void doTag(TagPluginContext ctxt) {
    
    //flag for the existence of the "context"
    boolean hasContext = ctxt.isAttributeSpecified("context");
    
    //names of the temp variables
    String urlName = ctxt.getTemporaryVariableName();
    String contextName = ctxt.getTemporaryVariableName();
    String baseUrlName = ctxt.getTemporaryVariableName();
    String resultName = ctxt.getTemporaryVariableName();
    String responseName = ctxt.getTemporaryVariableName();
    
    //get context
    ctxt.generateJavaSource("String " + contextName + " = null;");
    if(hasContext){
        ctxt.generateJavaSource(contextName + " = ");
        ctxt.generateAttribute("context");
        ctxt.generateJavaSource(";");
    }
    
    //get the url
    ctxt.generateJavaSource("String " + urlName + " = ");
    ctxt.generateAttribute("url");
    ctxt.generateJavaSource(";");
    
    //get the raw url according to "url" and "context"
    ctxt.generateJavaSource("String " + baseUrlName + " = " +
            "org.apache.jasper.tagplugins.jstl.Util.resolveUrl(" + urlName + ", " + contextName + ", pageContext);");
    ctxt.generateJavaSource("pageContext.setAttribute" +
            "(\"url_without_param\", " + baseUrlName + ");");
    
    //add params
    ctxt.generateBody();
    
    ctxt.generateJavaSource("String " + resultName + " = " +
    "(String)pageContext.getAttribute(\"url_without_param\");");
    ctxt.generateJavaSource("pageContext.removeAttribute" +
    "(\"url_without_param\");");
    
    //get the response object
    ctxt.generateJavaSource("HttpServletResponse " + responseName + " = " +
    "((HttpServletResponse) pageContext.getResponse());");
    
    //if the url is relative, encode it
    ctxt.generateJavaSource("if(!org.apache.jasper.tagplugins.jstl.Util.isAbsoluteUrl(" + resultName + ")){");
    ctxt.generateJavaSource("    " + resultName + " = "
            + responseName + ".encodeRedirectURL(" + resultName + ");");
    ctxt.generateJavaSource("}");
    
    //do redirect
    ctxt.generateJavaSource("try{");
    ctxt.generateJavaSource("    " + responseName + ".sendRedirect(" + resultName + ");");
    ctxt.generateJavaSource("}catch(java.io.IOException ex){");
    ctxt.generateJavaSource("    throw new JspTagException(ex.toString(), ex);");
    ctxt.generateJavaSource("}");
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:58,代码来源:Redirect.java

示例10: doTag

import org.apache.jasper.compiler.tagplugin.TagPluginContext; //导入方法依赖的package包/类
@Override
public void doTag(TagPluginContext ctxt) {
    
    //these two data member are to indicate 
    //whether the corresponding attribute is specified
    boolean hasDefault=false, hasEscapeXml=false;
    hasDefault = ctxt.isAttributeSpecified("default");
    hasEscapeXml = ctxt.isAttributeSpecified("escapeXml");
    
    //strValName, strEscapeXmlName & strDefName are two variables' name 
    //standing for value, escapeXml and default attribute
    String strObjectName = ctxt.getTemporaryVariableName();
    String strValName = ctxt.getTemporaryVariableName();
    String strDefName = ctxt.getTemporaryVariableName();
    String strEscapeXmlName = ctxt.getTemporaryVariableName();
    String strSkipBodyName = ctxt.getTemporaryVariableName();

    //according to the tag file, the value attribute is mandatory.
    ctxt.generateImport("java.io.Reader");
    ctxt.generateJavaSource("Object " + strObjectName + "=");
    ctxt.generateAttribute("value");
    ctxt.generateJavaSource(";");
    ctxt.generateJavaSource("String " + strValName + "=null;");
    ctxt.generateJavaSource("if(!(" + strObjectName +
            " instanceof Reader) && "+ strObjectName + " != null){");
    ctxt.generateJavaSource(
            strValName + " = " + strObjectName + ".toString();");
    ctxt.generateJavaSource("}");
    
    //initiate the strDefName with null.
    //if the default has been specified, then assign the value to it;
    ctxt.generateJavaSource("String " + strDefName + " = null;");
    if(hasDefault){
        ctxt.generateJavaSource("if(");
        ctxt.generateAttribute("default");
        ctxt.generateJavaSource(" != null){");
        ctxt.generateJavaSource(strDefName + " = (");
        ctxt.generateAttribute("default");
        ctxt.generateJavaSource(").toString();");
        ctxt.generateJavaSource("}");
    }
    
    //initiate the strEscapeXmlName with true;
    //if the escapeXml is specified, assign the value to it;
    ctxt.generateJavaSource("boolean " + strEscapeXmlName + " = true;");
    if(hasEscapeXml){
        ctxt.generateJavaSource(strEscapeXmlName + " = ");
        ctxt.generateAttribute("escapeXml");
        ctxt.generateJavaSource(";");
    }
    
    //main part. 
    ctxt.generateJavaSource(
            "boolean " + strSkipBodyName + " = " +
            "org.apache.jasper.tagplugins.jstl.core.Out.output(out, " +
            strObjectName + ", " + strValName + ", " + strDefName + ", " +
            strEscapeXmlName + ");");
    ctxt.generateJavaSource("if(!" + strSkipBodyName + ") {");
    ctxt.generateBody();
    ctxt.generateJavaSource("}");
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:62,代码来源:Out.java

示例11: doTag

import org.apache.jasper.compiler.tagplugin.TagPluginContext; //导入方法依赖的package包/类
@Override
public void doTag(TagPluginContext ctxt) {

	// flag for the existence of the "context"
	boolean hasContext = ctxt.isAttributeSpecified("context");

	// names of the temp variables
	String urlName = ctxt.getTemporaryVariableName();
	String contextName = ctxt.getTemporaryVariableName();
	String baseUrlName = ctxt.getTemporaryVariableName();
	String resultName = ctxt.getTemporaryVariableName();
	String responseName = ctxt.getTemporaryVariableName();

	// get context
	ctxt.generateJavaSource("String " + contextName + " = null;");
	if (hasContext) {
		ctxt.generateJavaSource(contextName + " = ");
		ctxt.generateAttribute("context");
		ctxt.generateJavaSource(";");
	}

	// get the url
	ctxt.generateJavaSource("String " + urlName + " = ");
	ctxt.generateAttribute("url");
	ctxt.generateJavaSource(";");

	// get the raw url according to "url" and "context"
	ctxt.generateJavaSource("String " + baseUrlName + " = " + "org.apache.jasper.tagplugins.jstl.Util.resolveUrl("
			+ urlName + ", " + contextName + ", pageContext);");
	ctxt.generateJavaSource("pageContext.setAttribute" + "(\"url_without_param\", " + baseUrlName + ");");

	// add params
	ctxt.generateBody();

	ctxt.generateJavaSource(
			"String " + resultName + " = " + "(String)pageContext.getAttribute(\"url_without_param\");");
	ctxt.generateJavaSource("pageContext.removeAttribute" + "(\"url_without_param\");");

	// get the response object
	ctxt.generateJavaSource(
			"HttpServletResponse " + responseName + " = " + "((HttpServletResponse) pageContext.getResponse());");

	// if the url is relative, encode it
	ctxt.generateJavaSource("if(!org.apache.jasper.tagplugins.jstl.Util.isAbsoluteUrl(" + resultName + ")){");
	ctxt.generateJavaSource("    " + resultName + " = " + responseName + ".encodeRedirectURL(" + resultName + ");");
	ctxt.generateJavaSource("}");

	// do redirect
	ctxt.generateJavaSource("try{");
	ctxt.generateJavaSource("    " + responseName + ".sendRedirect(" + resultName + ");");
	ctxt.generateJavaSource("}catch(java.io.IOException ex){");
	ctxt.generateJavaSource("    throw new JspTagException(ex.toString(), ex);");
	ctxt.generateJavaSource("}");
}
 
开发者ID:how2j,项目名称:lazycat,代码行数:55,代码来源:Redirect.java

示例12: doTag

import org.apache.jasper.compiler.tagplugin.TagPluginContext; //导入方法依赖的package包/类
public void doTag(TagPluginContext ctxt) {
    
    //don't support the body content
    
    //define names of all the temp variables
    String nameName = ctxt.getTemporaryVariableName();
    String valueName = ctxt.getTemporaryVariableName();
    String urlName = ctxt.getTemporaryVariableName();
    String encName = ctxt.getTemporaryVariableName();
    String index = ctxt.getTemporaryVariableName();
    
    //if the param tag has no parents, throw a exception
    TagPluginContext parent = ctxt.getParentContext();
    if(parent == null){
        ctxt.generateJavaSource(" throw new JspTagExcption" +
        "(\"&lt;param&gt; outside &lt;import&gt; or &lt;urlEncode&gt;\");");
        return;
    }
    
    //get the url string before adding this param
    ctxt.generateJavaSource("String " + urlName + " = " +
    "(String)pageContext.getAttribute(\"url_without_param\");");
    
    //get the value of "name"
    ctxt.generateJavaSource("String " + nameName + " = ");
    ctxt.generateAttribute("name");
    ctxt.generateJavaSource(";");
    
    //if the "name" is null then do nothing.
    //else add such string "name=value" to the url.
    //and the url should be encoded
    ctxt.generateJavaSource("if(" + nameName + " != null && !" + nameName + ".equals(\"\")){");
    ctxt.generateJavaSource("    String " + valueName + " = ");
    ctxt.generateAttribute("value");
    ctxt.generateJavaSource(";");
    ctxt.generateJavaSource("    if(" + valueName + " == null) " + valueName + " = \"\";");
    ctxt.generateJavaSource("    String " + encName + " = pageContext.getResponse().getCharacterEncoding();");
    ctxt.generateJavaSource("    " + nameName + " = java.net.URLEncoder.encode(" + nameName + ", " + encName + ");");
    ctxt.generateJavaSource("    " + valueName + " = java.net.URLEncoder.encode(" + valueName + ", " + encName + ");");
    ctxt.generateJavaSource("    int " + index + ";");
    ctxt.generateJavaSource("    " + index + " = " + urlName + ".indexOf(\'?\');");
    //if the current param is the first one, add a "?" ahead of it
    //else add a "&" ahead of it
    ctxt.generateJavaSource("    if(" + index + " == -1){");
    ctxt.generateJavaSource("        " + urlName + " = " + urlName + " + \"?\" + " + nameName + " + \"=\" + " + valueName + ";");
    ctxt.generateJavaSource("    }else{");
    ctxt.generateJavaSource("        " + urlName + " = " + urlName + " + \"&\" + " + nameName + " + \"=\" + " + valueName + ";");
    ctxt.generateJavaSource("    }");
    ctxt.generateJavaSource("    pageContext.setAttribute(\"url_without_param\"," + urlName + ");");
    ctxt.generateJavaSource("}");	
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:52,代码来源:Param.java

示例13: doTag

import org.apache.jasper.compiler.tagplugin.TagPluginContext; //导入方法依赖的package包/类
public void doTag(TagPluginContext ctxt) {
    
    //flags
    boolean hasVar, hasContext, hasScope;
    
    //init flags
    hasVar = ctxt.isAttributeSpecified("var");
    hasContext = ctxt.isAttributeSpecified("context");
    hasScope = ctxt.isAttributeSpecified("scope");
    
    //define name of the temp variables
    String valueName = ctxt.getTemporaryVariableName();
    String contextName = ctxt.getTemporaryVariableName();
    String baseUrlName = ctxt.getTemporaryVariableName();
    String resultName = ctxt.getTemporaryVariableName();
    String responseName = ctxt.getTemporaryVariableName();
    
    //get the scope
    String strScope = "page";
    if(hasScope){
        strScope = ctxt.getConstantAttribute("scope");
    }
    int iScope = Util.getScope(strScope);
    
    //get the value
    ctxt.generateJavaSource("String " + valueName + " = ");
    ctxt.generateAttribute("value");
    ctxt.generateJavaSource(";");
    
    //get the context
    ctxt.generateJavaSource("String " + contextName + " = null;");
    if(hasContext){
        ctxt.generateJavaSource(contextName + " = ");
        ctxt.generateAttribute("context");
        ctxt.generateJavaSource(";");
    }
    
    //get the raw url
    ctxt.generateJavaSource("String " + baseUrlName + " = " +
            "org.apache.jasper.tagplugins.jstl.Util.resolveUrl(" + valueName + ", " + contextName + ", pageContext);");
    ctxt.generateJavaSource("pageContext.setAttribute" +
            "(\"url_without_param\", " + baseUrlName + ");");
    
    //add params
    ctxt.generateBody();
    
    ctxt.generateJavaSource("String " + resultName + " = " +
    "(String)pageContext.getAttribute(\"url_without_param\");");
    ctxt.generateJavaSource("pageContext.removeAttribute(\"url_without_param\");");
    
    //if the url is relative, encode it
    ctxt.generateJavaSource("if(!org.apache.jasper.tagplugins.jstl.Util.isAbsoluteUrl(" + resultName + ")){");
    ctxt.generateJavaSource("    HttpServletResponse " + responseName + " = " +
    "((HttpServletResponse) pageContext.getResponse());");
    ctxt.generateJavaSource("    " + resultName + " = "
            + responseName + ".encodeURL(" + resultName + ");");
    ctxt.generateJavaSource("}");
    
    //if "var" is specified, the url string store in the attribute var defines
    if(hasVar){
        String strVar = ctxt.getConstantAttribute("var");
        ctxt.generateJavaSource("pageContext.setAttribute" +
                "(\"" + strVar + "\", " + resultName + ", " + iScope + ");");
        
        //if var is not specified, just print out the url string
    }else{
        ctxt.generateJavaSource("try{");
        ctxt.generateJavaSource("    pageContext.getOut().print(" + resultName + ");");
        ctxt.generateJavaSource("}catch(java.io.IOException ex){");
        ctxt.generateJavaSource("    throw new JspTagException(ex.toString(), ex);");
        ctxt.generateJavaSource("}");
    }
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:74,代码来源:Url.java

示例14: doTag

import org.apache.jasper.compiler.tagplugin.TagPluginContext; //导入方法依赖的package包/类
public void doTag(TagPluginContext ctxt) {
    
    //these two data member are to indicate 
    //whether the corresponding attribute is specified
    boolean hasDefault=false, hasEscapeXml=false;
    hasDefault = ctxt.isAttributeSpecified("default");
    hasEscapeXml = ctxt.isAttributeSpecified("escapeXml");
    
    //strValName, strEscapeXmlName & strDefName are two variables' name 
    //standing for value, escapeXml and default attribute
    String strValName = ctxt.getTemporaryVariableName();
    String strDefName = ctxt.getTemporaryVariableName();
    String strEscapeXmlName = ctxt.getTemporaryVariableName();
    
    //according to the tag file, the value attribute is mandatory.
    ctxt.generateJavaSource("String " + strValName + " = null;");
    ctxt.generateJavaSource("if(");
    ctxt.generateAttribute("value");
    ctxt.generateJavaSource("!=null){");
    ctxt.generateJavaSource("    " + strValName + " = (");
    ctxt.generateAttribute("value");
    ctxt.generateJavaSource(").toString();");
    ctxt.generateJavaSource("}");
    
    //initiate the strDefName with null.
    //if the default has been specified, then assign the value to it;
    ctxt.generateJavaSource("String " + strDefName + " = null;\n");
    if(hasDefault){
        ctxt.generateJavaSource("if(");
        ctxt.generateAttribute("default");
        ctxt.generateJavaSource(" != null){");
        ctxt.generateJavaSource(strDefName + " = (");
        ctxt.generateAttribute("default");
        ctxt.generateJavaSource(").toString();");
        ctxt.generateJavaSource("}");
    }
    
    //initiate the strEscapeXmlName with true;
    //if the escapeXml is specified, assign the value to it;
    ctxt.generateJavaSource("boolean " + strEscapeXmlName + " = true;");
    if(hasEscapeXml){
        ctxt.generateJavaSource(strEscapeXmlName + " = Boolean.parseBoolean((");
        ctxt.generateAttribute("default");
        ctxt.generateJavaSource(").toString());");
    }
    
    //main part. 
    ctxt.generateJavaSource("if(null != " + strValName +"){");
    ctxt.generateJavaSource("    if(" + strEscapeXmlName + "){");
    ctxt.generateJavaSource("        " + strValName + " = org.apache.jasper.tagplugins.jstl.Util.escapeXml(" + strValName + ");");
    ctxt.generateJavaSource("    }");
    ctxt.generateJavaSource("    out.write(" + strValName + ");");
    ctxt.generateJavaSource("}else{");
    ctxt.generateJavaSource("    if(null != " + strDefName + "){");
    ctxt.generateJavaSource("        if(" + strEscapeXmlName + "){");
    ctxt.generateJavaSource("            " + strDefName + " = org.apache.jasper.tagplugins.jstl.Util.escapeXml(" + strDefName + ");");
    ctxt.generateJavaSource("        }");
    ctxt.generateJavaSource("        out.write(" + strDefName + ");");
    ctxt.generateJavaSource("    }else{");
    ctxt.generateBody();
    ctxt.generateJavaSource("    }");
    ctxt.generateJavaSource("}");   
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:64,代码来源:Out.java

示例15: doTag

import org.apache.jasper.compiler.tagplugin.TagPluginContext; //导入方法依赖的package包/类
@Override
public void doTag(TagPluginContext ctxt) {

	// don't support the body content

	// define names of all the temp variables
	String nameName = ctxt.getTemporaryVariableName();
	String valueName = ctxt.getTemporaryVariableName();
	String urlName = ctxt.getTemporaryVariableName();
	String encName = ctxt.getTemporaryVariableName();
	String index = ctxt.getTemporaryVariableName();

	// if the param tag has no parents, throw a exception
	TagPluginContext parent = ctxt.getParentContext();
	if (parent == null) {
		ctxt.generateJavaSource(
				" throw new JspTagException" + "(\"&lt;param&gt; outside &lt;import&gt; or &lt;urlEncode&gt;\");");
		return;
	}

	// get the url string before adding this param
	ctxt.generateJavaSource(
			"String " + urlName + " = " + "(String)pageContext.getAttribute(\"url_without_param\");");

	// get the value of "name"
	ctxt.generateJavaSource("String " + nameName + " = ");
	ctxt.generateAttribute("name");
	ctxt.generateJavaSource(";");

	// if the "name" is null then do nothing.
	// else add such string "name=value" to the url.
	// and the url should be encoded
	ctxt.generateJavaSource("if(" + nameName + " != null && !" + nameName + ".equals(\"\")){");
	ctxt.generateJavaSource("    String " + valueName + " = ");
	ctxt.generateAttribute("value");
	ctxt.generateJavaSource(";");
	ctxt.generateJavaSource("    if(" + valueName + " == null) " + valueName + " = \"\";");
	ctxt.generateJavaSource("    String " + encName + " = pageContext.getResponse().getCharacterEncoding();");
	ctxt.generateJavaSource(
			"    " + nameName + " = java.net.URLEncoder.encode(" + nameName + ", " + encName + ");");
	ctxt.generateJavaSource(
			"    " + valueName + " = java.net.URLEncoder.encode(" + valueName + ", " + encName + ");");
	ctxt.generateJavaSource("    int " + index + ";");
	ctxt.generateJavaSource("    " + index + " = " + urlName + ".indexOf(\'?\');");
	// if the current param is the first one, add a "?" ahead of it
	// else add a "&" ahead of it
	ctxt.generateJavaSource("    if(" + index + " == -1){");
	ctxt.generateJavaSource(
			"        " + urlName + " = " + urlName + " + \"?\" + " + nameName + " + \"=\" + " + valueName + ";");
	ctxt.generateJavaSource("    }else{");
	ctxt.generateJavaSource(
			"        " + urlName + " = " + urlName + " + \"&\" + " + nameName + " + \"=\" + " + valueName + ";");
	ctxt.generateJavaSource("    }");
	ctxt.generateJavaSource("    pageContext.setAttribute(\"url_without_param\"," + urlName + ");");
	ctxt.generateJavaSource("}");
}
 
开发者ID:how2j,项目名称:lazycat,代码行数:57,代码来源:Param.java


注:本文中的org.apache.jasper.compiler.tagplugin.TagPluginContext.generateAttribute方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。