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

📄 bookmarkablepagerequesttarget.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.component;import java.lang.ref.WeakReference;import org.apache.wicket.IPageFactory;import org.apache.wicket.Page;import org.apache.wicket.PageParameters;import org.apache.wicket.RequestCycle;import org.apache.wicket.request.IRequestCycleProcessor;/** * Default implementation of {@link IBookmarkablePageRequestTarget}. Target that denotes a page * that is to be created from the provided page class. This is typically used for redirects to * bookmarkable pages or mounted pages. *  * @author Eelco Hillenius * @author Igor Vaynberg (ivaynberg) */public class BookmarkablePageRequestTarget implements IBookmarkablePageRequestTarget{	/** the page that was created in response for cleanup */	private Page page;	/** the class of the page. */	private final WeakReference/* <Class> */pageClassRef;	/** optional page map name. */	private final String pageMapName;	/** optional page parameters. */	private final PageParameters pageParameters;	/**	 * Construct.	 * 	 * @param pageClass	 *            the class of the page	 */	public BookmarkablePageRequestTarget(Class pageClass)	{		this(null, pageClass);	}	/**	 * Construct.	 * 	 * @param pageClass	 *            the class of the page	 * @param pageParameters	 *            optional page parameters	 */	public BookmarkablePageRequestTarget(Class pageClass, PageParameters pageParameters)	{		this(null, pageClass, pageParameters);	}	/**	 * Construct.	 * 	 * @param pageMapName	 *            optional page map name	 * 	 * @param pageClass	 *            the class of the page	 */	public BookmarkablePageRequestTarget(String pageMapName, Class pageClass)	{		this(null, pageClass, null);	}	/**	 * Construct.	 * 	 * @param pageMapName	 *            optional page map name	 * @param pageClass	 *            the class of the page	 * @param pageParameters	 *            optional page parameters	 */	public BookmarkablePageRequestTarget(String pageMapName, Class pageClass,		PageParameters pageParameters)	{		if (pageClass == null)		{			throw new IllegalArgumentException("Argument pageClass must be not null");		}		if (!Page.class.isAssignableFrom(pageClass))		{			throw new IllegalArgumentException("Argument pageClass must be an instance of " +				Page.class.getName());		}		this.pageClassRef = new WeakReference(pageClass);		this.pageParameters = (pageParameters == null) ? new PageParameters() : pageParameters;		this.pageMapName = pageMapName;	}	/**	 * @see org.apache.wicket.IRequestTarget#detach(org.apache.wicket.RequestCycle)	 */	public void detach(RequestCycle requestCycle)	{		if (page != null)		{			page.detach();		}	}	/**	 * @see java.lang.Object#equals(java.lang.Object)	 */	public boolean equals(Object obj)	{		boolean equal = false;		if (obj != null && (obj instanceof BookmarkablePageRequestTarget))		{			BookmarkablePageRequestTarget that = (BookmarkablePageRequestTarget)obj;			if (getPageClass().equals(that.getPageClass()))			{				boolean mapMatch = false;				if (pageMapName != null)				{					mapMatch = (that.pageMapName != null && pageMapName.equals(that.pageMapName));				}				else				{					mapMatch = (that.pageMapName == null);				}				equal = mapMatch;			}		}		return equal;	}	/**	 * @return The page that was created, null if the response did not happen yet	 */	public final Page getPage()	{		return page;	}	protected final void setPage(Page page)	{		this.page = page;	}	/**	 * @see org.apache.wicket.request.target.component.IBookmarkablePageRequestTarget#getPageClass()	 */	public final Class getPageClass()	{		return (Class)pageClassRef.get();	}	/**	 * @see org.apache.wicket.request.target.component.IBookmarkablePageRequestTarget#getPageMapName()	 */	public final String getPageMapName()	{		return pageMapName;	}	/**	 * @see org.apache.wicket.request.target.component.IBookmarkablePageRequestTarget#getPageParameters()	 */	public final PageParameters getPageParameters()	{		return pageParameters;	}	/**	 * @see java.lang.Object#hashCode()	 */	public int hashCode()	{		int result = "BookmarkablePageRequestTarget".hashCode();		result += getPageClass().hashCode();		result += pageMapName != null ? pageMapName.hashCode() : 0;		return 17 * result;	}	/**	 * @see org.apache.wicket.request.target.IEventProcessor#processEvents(org.apache.wicket.RequestCycle)	 */	public void processEvents(RequestCycle requestCycle)	{		if (!requestCycle.isRedirect())		{			page = getPage(requestCycle);		}	}	/**	 * @see org.apache.wicket.IRequestTarget#respond(org.apache.wicket.RequestCycle)	 */	public void respond(RequestCycle requestCycle)	{		if (pageClassRef != null && pageClassRef.get() != null)		{			if (requestCycle.isRedirect())			{				IRequestCycleProcessor processor = requestCycle.getProcessor();				String redirectUrl = processor.getRequestCodingStrategy()					.encode(requestCycle, this).toString();				requestCycle.getResponse().redirect(redirectUrl);			}			else			{				// Let the page render itself				getPage(requestCycle).renderPage();			}		}	}	/**	 * @see java.lang.Object#toString()	 */	public String toString()	{		return "[BookmarkablePageRequestTarget@" + hashCode() + " pageClass=" +			getPageClass().getName() + "]";	}	/**	 * Constructs a new instance of a page given its class name	 * 	 * @param pageClass	 *            class name of the page to be created	 * @param requestCycle	 *            request cycle	 * @return new instance of page	 */	protected Page newPage(final Class pageClass, final RequestCycle requestCycle)	{		// Construct a new instance using the default page factory		IPageFactory pageFactory = requestCycle.getApplication().getSessionSettings()			.getPageFactory();		if (pageParameters == null || pageParameters.size() == 0)		{			return pageFactory.newPage(pageClass);		}		else		{			// Add bookmarkable params in for WICKET-400.			requestCycle.getRequest().getParameterMap().putAll(pageParameters);			return pageFactory.newPage(pageClass, pageParameters);		}	}	/**	 * Gets a newly constructed page if we are not in a redirect.	 * 	 * @param requestCycle	 *            the request cycle	 * @return the page	 */	protected final Page getPage(RequestCycle requestCycle)	{		if (page == null && !requestCycle.isRedirect())		{			page = newPage(getPageClass(), requestCycle);		}		return page;	}}

⌨️ 快捷键说明

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