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

📄 indexedparamurlcodingstrategy.java

📁 Wicket一个开发Java Web应用程序框架。它使得开发web应用程序变得容易而轻松。 Wicket利用一个POJO data beans组件使得它可以与任何持久层技术相结合。
💻 JAVA
字号:
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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.apache.wicket.request.target.coding;import java.util.Map;import org.apache.wicket.PageMap;import org.apache.wicket.PageParameters;import org.apache.wicket.WicketRuntimeException;import org.apache.wicket.protocol.http.request.WebRequestCodingStrategy;import org.apache.wicket.util.string.AppendingStringBuffer;import org.apache.wicket.util.value.ValueMap;/** * Url coding strategy for bookmarkable pages that encodes index based parameters. *  * Strategy looks for parameters whose name is an integer in an incremented order starting with * zero. Found parameters will be appended to the url in the form * /mount-path/paramvalue0/paramvalue1/paramvalue2 *  * When decoded these parameters will once again be available under their index ( * PageParameters.getString("0"); ) *  * @author Igor Vaynberg (ivaynberg) */public class IndexedParamUrlCodingStrategy extends BookmarkablePageRequestTargetUrlCodingStrategy{	/**	 * Construct.	 * 	 * @param mountPath	 *            mount path	 * @param bookmarkablePageClass	 *            class of mounted page	 */	public IndexedParamUrlCodingStrategy(String mountPath, Class bookmarkablePageClass)	{		super(mountPath, bookmarkablePageClass, PageMap.DEFAULT_NAME);	}	/**	 * Construct.	 * 	 * @param mountPath	 *            mount path	 * @param bookmarkablePageClass	 *            class of mounted page	 * @param pageMapName	 *            name of pagemap	 */	public IndexedParamUrlCodingStrategy(String mountPath, Class bookmarkablePageClass,			String pageMapName)	{		super(mountPath, bookmarkablePageClass, pageMapName);	}	protected void appendParameters(AppendingStringBuffer url, Map parameters)	{		int i = 0;		while (parameters.containsKey(String.valueOf(i)))		{			String value = (String)parameters.get(String.valueOf(i));			if (!url.endsWith("/"))			{				url.append("/");			}			url.append(urlEncode(value)).append("/");			i++;		}		String pageMap = (String)parameters.get(WebRequestCodingStrategy.PAGEMAP);		if (pageMap != null)		{			i++;			pageMap = WebRequestCodingStrategy.encodePageMapName(pageMap);			if (!url.endsWith("/"))			{				url.append("/");			}			url.append(WebRequestCodingStrategy.PAGEMAP).append("/").append(urlEncode(pageMap))					.append("/");		}		String intface = (String)parameters.get(WebRequestCodingStrategy.INTERFACE_PARAMETER_NAME);		if (intface != null)		{			i++;			if (!url.endsWith("/"))			{				url.append("/");			}			url.append(WebRequestCodingStrategy.INTERFACE_PARAMETER_NAME).append("/").append(					urlEncode(intface)).append("/");		}		if (i != parameters.size())		{			throw new WicketRuntimeException(					"Not all parameters were encoded. Make sure all parameter names are integers in consecutive order starting with zero. Current parameter names are: " +							parameters.keySet().toString());		}	}	protected ValueMap decodeParameters(String urlFragment, Map urlParameters)	{		PageParameters params = new PageParameters();		if (urlFragment == null)		{			return params;		}		if (urlFragment.startsWith("/"))		{			urlFragment = urlFragment.substring(1);		}		if (urlFragment.length() > 0 && urlFragment.endsWith("/"))		{			urlFragment = urlFragment.substring(0, urlFragment.length() - 1);		}		if (urlFragment.length() > 0)		{			String[] parts = urlFragment.split("/");			for (int i = 0; i < parts.length; i++)			{				if (WebRequestCodingStrategy.PAGEMAP.equals(parts[i]))				{					i++;					params.put(WebRequestCodingStrategy.PAGEMAP, WebRequestCodingStrategy							.decodePageMapName(urlDecode(parts[i])));				}				else if (WebRequestCodingStrategy.INTERFACE_PARAMETER_NAME.equals(parts[i]))				{					i++;					params.put(WebRequestCodingStrategy.INTERFACE_PARAMETER_NAME,							urlDecode(parts[i]));				}				else				{					params.put(String.valueOf(i), urlDecode(parts[i]));				}			}		}		return params;	}}

⌨️ 快捷键说明

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