wmlnextformtag.java

来自「一个免费wap站」· Java 代码 · 共 110 行

JAVA
110
字号
package com.eline.wap.common.taglib.wml;

import java.util.StringTokenizer;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
import com.eline.wap.common.taglib.ListTag;
import com.eline.wap.common.util.AppLogger;

public class WmlNextFormTag extends TagSupport {

	/**
	 * 
	 */
	private static final long serialVersionUID = -3942298759948371437L;

    private String action = null;
    private ListTag listTag = null;
    private String method = "post";

	public int doEndTag() throws JspException {
		// if next form has been printed out, print out </form> tag
		if (listTag.hasNextForm()) {
			try {
				JspWriter out = pageContext.getOut();
				out.print("</go>");
				out.println("</anchor>");
			} catch(IOException ioe) {
				AppLogger.error("WmlNextFormTag.doEndTag(): 形成下一页标记WmlNextFormTag失败!");
          }
        }
        return EVAL_PAGE;
	}

	public int doStartTag() throws JspException {
        // check if inside list tag
        listTag = (ListTag) findAncestorWithClass(this, ListTag.class);
        if (listTag == null) {
            throw new JspTagException("NextFormTag: nextForm tag not inside list" + "tag");
        }
        // if no next form is needed, don't process the body
        if (!listTag.hasNextForm())
        	return SKIP_BODY;

        if ((listTag.getPageIndex() + 1) >= listTag.getTotalPages())
        	return SKIP_BODY;

        // print out <form> tag and hidden input for pageIndex
        try {
            JspWriter out = pageContext.getOut();

            //求出所要转到的网页
            StringTokenizer actionToken = new StringTokenizer(action, "?");
            if (actionToken.countTokens() < 1) {
                throw new JspTagException("所传入链接不合法!");
            }
            String linkURL = actionToken.nextToken();
            String paramsList = "";
            if (actionToken.countTokens() > 0) {
            	paramsList = actionToken.nextToken();
            }

            //求出页面中传过来的参数串
            StringTokenizer paramsToken = new StringTokenizer(paramsList, "&");
            String itemStr = null, param = null, value = null;
            StringTokenizer itemToken = null;

            //形成参数传递页面内容
            out.print("<anchor>下页");
            // out.print("<go href=\"" + linkURL + "\">");
			out.print("<go href=\"" + linkURL + "\" method=\"" + this.method + "\">");

            // 页面相关参数
            out.print("<postfield name=\"" + listTag.getParamPrefix() + listTag.getPageIndexParam() + "\" value=\"" + (listTag.getPageIndex() + 1) + "\" />");
            out.print("<postfield name=\"" + listTag.getParamPrefix() + listTag.getNextParam() + "\" value=\"true\" />");

            // 原始参数
            while (paramsToken.hasMoreTokens()) {
                itemStr = paramsToken.nextToken();
                itemToken = new StringTokenizer(itemStr, "=");
                if (itemToken.countTokens() > 1) {
                    param = itemToken.nextToken();
                    if (param.indexOf("amp;") >= 0) {
                        param = param.substring(4);
                    }
                    value = itemToken.nextToken();
                    out.print("<postfield name=\"" + param + "\" value=\"" + value + "\" />");
                }
            }
        } catch (IOException e) {
        	AppLogger.error("WmlNextFormTag.doStartTag(): 形成下一页标记WmlNextFormTag失败!");
        }
		return EVAL_BODY_INCLUDE;
	}

	public void setAction(String action) {
		this.action = action;
	}

	public void setMethod(String method) {
		if (method!=null && !method.equals("") && !method.equalsIgnoreCase("null"))
			this.method = method;
		else
			this.method = "post";
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?