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

📄 indexedhybridurlcodingstrategy.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.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;/** * {@link HybridUrlCodingStrategy} subclass that encodes the parameters in an indexed way like * {@link IndexedParamUrlCodingStrategy} does. *  * @author Matej Knopp */public class IndexedHybridUrlCodingStrategy extends HybridUrlCodingStrategy{	/**	 * 	 * Construct.	 * 	 * @param mountPath	 * @param pageClass	 */	public IndexedHybridUrlCodingStrategy(String mountPath, Class pageClass)	{		super(mountPath, pageClass);	}	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("/");		}		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);		}		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			{				params.put(String.valueOf(i), urlDecode(parts[i]));			}		}		return params;	}}

⌨️ 快捷键说明

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