⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parameterregistry.java

📁 exTreme taglib的使用
💻 JAVA
字号:
/* * Copyright 2004 original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *    http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.extremecomponents.table.core;import java.net.URLEncoder;import java.util.Enumeration;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;import javax.servlet.http.HttpServletRequest;import javax.servlet.jsp.PageContext;import org.apache.commons.lang.StringUtils;import org.extremecomponents.table.bean.Table;/** *  * @author jeff johnston */public final class ParameterRegistry {    private BaseModel model;    private Map parameters = new HashMap();    public ParameterRegistry(BaseModel model) {        this.model = model;    }    public void init(PageContext pageContext) {        if (shouldUseSessionFilterSort() && saveFilterSort()) {            this.parameters = getParameters();        } else {            Enumeration enumeration = pageContext.getRequest().getParameterNames();            while (enumeration.hasMoreElements()) {                String name = (String) enumeration.nextElement();                String value = pageContext.getRequest().getParameter(name);                if (StringUtils.isNotBlank(value)) {                    value = value.trim();                }                if (name.startsWith(model.getTableHandler().prefixWithTableId() + TableConstants.PAGE)                        || name.startsWith(model.getTableHandler().prefixWithTableId()                                + TableConstants.CURRENT_ROWS_DISPLAYED)                        || name.startsWith(model.getTableHandler().prefixWithTableId() + TableConstants.SORT)                        || name.startsWith(model.getTableHandler().prefixWithTableId() + TableConstants.FILTER)                        || name.startsWith(model.getTableHandler().prefixWithTableId() + TableConstants.EXPORT)                        || name.startsWith(model.getTableHandler().prefixWithTableId() + TableConstants.OPEN)) {                    parameters.put(name, value);                } else {                    if (model.getTableHandler().getTable().autoIncludeParameters()) {                        if (!name.equals(Table.EXTREME_TABLE)) {                            parameters.put(name, value);                        }                    }                }            }        }        if (saveFilterSort()) {            saveParametersInSession();        }    }    /**     * Add additional parameters that need to be passed around     */    public void addParameter(String name, String value) {        if (StringUtils.isNotBlank(value)) {            value = value.trim();        }        parameters.put(name, value);    }    /**     * Get the parameter prepended by the table key     */    public String getParameter(String parameter) {        return (String) parameters.get(model.getTableHandler().prefixWithTableId() + parameter);    }    public Map getParameters() {        if (saveFilterSort()) {            HttpServletRequest request = (HttpServletRequest) model.getPageContext().getRequest();            Map params = (Map) request.getSession().getAttribute(model.getTableHandler().prefixWithTableId());            if (params != null) {                return params;            }        }        return this.parameters;    }    /**     * Get a map of specific parameters     */    public Map getParameters(String parameter) {        Map subset = new HashMap();        String find = model.getTableHandler().prefixWithTableId() + parameter;        Set set = parameters.keySet();        for (Iterator iter = set.iterator(); iter.hasNext();) {            String key = (String) iter.next();            if (key.startsWith(find)) {                String value = (String) parameters.get(key);                subset.put(key, value);            }        }        return subset;    }    /**     * Get a map of specific parameters     */    public Map clearParameters(String parameter) {        if (saveFilterSort()) {            removeParametersInSession();        }        Map subset = new HashMap();        Set set = parameters.keySet();        for (Iterator iter = set.iterator(); iter.hasNext();) {            String name = (String) iter.next();            if (name.startsWith(model.getTableHandler().prefixWithTableId() + parameter)) {                iter.remove();            }        }        return subset;    }    /**     * Take the parameters and format into hidden fields     */    public String getHiddenFields(String parameter) {        StringBuffer sb = new StringBuffer();        Set keys = parameters.keySet();        for (Iterator iter = keys.iterator(); iter.hasNext();) {            String name = (String) iter.next();            if (((parameter == null) && !name.startsWith(model.getTableHandler().prefixWithTableId()))                    || (name.startsWith(model.getTableHandler().prefixWithTableId() + parameter))) {                String value = (String) parameters.get(name);                sb.append("\n\t<input type=\"hidden\" name=\"").append(name).append("\" value=\"").append(value)                        .append("\">\n");            }        }        return sb.toString();    }    /**     * Get a URI formated parameter string. Will look like &key=value     */    public String getParameterString(String parameter) {        StringBuffer sb = new StringBuffer();        Set keys = parameters.keySet();        for (Iterator iter = keys.iterator(); iter.hasNext();) {            String name = (String) iter.next();            if (((parameter == null) && !name.startsWith(model.getTableHandler().prefixWithTableId()))                    || (name.startsWith(model.getTableHandler().prefixWithTableId() + parameter))) {                String value = (String) parameters.get(name);                value = URLEncoder.encode(value);                sb.append("&" + name + "=" + value);            }        }        return sb.toString();    }    /**     * Get parameter datum.     */    public String getURLParameterString(boolean filter, boolean sort, boolean page, boolean rowsDisplayed) {        StringBuffer sb = new StringBuffer();        if (filter) {            sb.append(getParameterString(TableConstants.FILTER));        }        if (sort) {            sb.append(getParameterString(TableConstants.SORT));        }        if (page) {            sb.append(getParameterString(TableConstants.PAGE));        }        if (rowsDisplayed) {            sb.append(getParameterString(TableConstants.CURRENT_ROWS_DISPLAYED));        }        sb.append(getParameterString(null));        return sb.toString();    }    /**     * Get all the action as hidden fields.     */    public String getFormHiddenFields(boolean filter, boolean sort, boolean page, boolean rowsDisplayed) {        StringBuffer sb = new StringBuffer();        if (filter) {            sb.append(getHiddenFields(TableConstants.FILTER));        }        if (sort) {            sb.append(getHiddenFields(TableConstants.SORT));        }        if (page) {            sb.append(getHiddenFields(TableConstants.PAGE));        }        if (rowsDisplayed) {            sb.append(getHiddenFields(TableConstants.CURRENT_ROWS_DISPLAYED));        }        sb.append(getHiddenFields(null));        return sb.toString();    }    public void destroy() {        if (!saveFilterSort()) {            parameters.clear();            parameters = null;        }    }    private boolean saveFilterSort() {        if (StringUtils.isNotEmpty(model.getTableHandler().getTable().getSaveFilterSort())                && model.getTableHandler().getTable().getSaveFilterSort().equalsIgnoreCase("true")) {            return true;        }        return false;    }    private void saveParametersInSession() {        HttpServletRequest req = (HttpServletRequest) model.getPageContext().getRequest();        req.getSession().setAttribute(model.getTableHandler().prefixWithTableId(), parameters);    }    private void removeParametersInSession() {        HttpServletRequest req = (HttpServletRequest) model.getPageContext().getRequest();        req.getSession().setAttribute(model.getTableHandler().prefixWithTableId(), new HashMap());    }    private boolean shouldUseSessionFilterSort() {        boolean result = false;        // user defined param set up in properties file        String useSessionFilterSortFlagName = model.getProperties()                .getProperty(TableProperties.USE_SESSION_FILTER_SORT);        if (StringUtils.isNotBlank(useSessionFilterSortFlagName)) {            String useSessionFilterSort = model.getPageContext().getRequest()                    .getParameter(useSessionFilterSortFlagName);            if (StringUtils.isNotEmpty(useSessionFilterSort) && useSessionFilterSort.equalsIgnoreCase("true")) {                result = true;            }        }        return result;    }}

⌨️ 快捷键说明

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