wmllastformtag.java

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

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

import java.util.StringTokenizer;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.TagSupport;
import java.io.IOException;

import com.eline.wap.common.taglib.ListTag;
import com.eline.wap.common.util.AppLogger;

public class WmlLastFormTag extends TagSupport {

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

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

	public int doStartTag() throws JspException {
        //验证本标记在列表标记内
        listTag = (ListTag) findAncestorWithClass(this, ListTag.class);
        if (listTag == null) {
            throw new JspTagException("形成最后页标记没有对应的列表标记");
        }
        
        try {
        	JspWriter out = pageContext.getOut();

            //求出所要转到的网页
            StringTokenizer actionToken = new StringTokenizer(action, "?");
            if (actionToken.countTokens() < 1) {
                throw new JspTagException("所传入链接不合法!");
            }
            String linkURL = actionToken.nextToken();
            String paramsList = actionToken.nextToken();
            linkURL += "?" + listTag.getParamPrefix() + listTag.getPageIndexParam() + "=" + ((listTag.getTotalRecords() - 1)*listTag.getPageSize() + 1);
            linkURL += "&amp;" + listTag.getParamPrefix() + listTag.getNextParam() + "=true";

            //求出页面中传过来的参数串
            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 + "\">");

            
            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("WmlLastFormTag.doStartTag(): 形成最后一页标记WmlLastFormTag失败!");
        }
        return EVAL_BODY_INCLUDE;
	}

	public int doEndTag() throws JspException {
        try {
            JspWriter out = pageContext.getOut();
            out.print("</go>");
            out.print("</anchor>&nbsp;");
        }
        catch (IOException ex) {
        	AppLogger.error("WmlLastFormTag.doEndTag(): 形成最后一页标记WmlLastFormTag失败!");
        }

        return EVAL_PAGE;
	}

	/**
	 * 
	 * @param action
	 */
	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 + -
显示快捷键?