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

📄 wicketportlet.java

📁 Wicket一个开发Java Web应用程序框架。它使得开发web应用程序变得容易而轻松。 Wicket利用一个POJO data beans组件使得它可以与任何持久层技术相结合。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
			defaultPages.put(PARAM_HELP_PAGE, viewPage);		}		else		{			defaultPage = fixWicketUrl(defaultPage, wicketFilterPath, wicketFilterQuery);			defaultPages.put(PARAM_HELP_PAGE, defaultPage.startsWith(wicketFilterPath)					? defaultPage					: viewPage);		}		defaultPage = (String)defaultPages.get(PARAM_EDIT_PAGE);		if (defaultPage == null)		{			defaultPages.put(PARAM_EDIT_PAGE, viewPage);		}		else		{			defaultPage = fixWicketUrl(defaultPage, wicketFilterPath, wicketFilterQuery);			defaultPages.put(PARAM_EDIT_PAGE, defaultPage.startsWith(wicketFilterPath)					? defaultPage					: viewPage);		}	}	protected Properties getWicketPortletProperties(Properties properties) throws PortletException	{		if (properties == null)		{			properties = new Properties();		}		InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(				WICKET_PORTLET_PROPERTIES);		if (is != null)		{			try			{				properties.load(is);			}			catch (IOException e)			{				throw new PortletException(						"Failed to load WicketPortlet.properties from classpath", e);			}		}		return properties;	}	protected String getContextProviderClassNameParameter(PortletConfig config)	{		return config.getInitParameter(PARAM_SERVLET_CONTEXT_PROVIDER);	}	protected String getPortletResourceURLFactoryClassNameParameter(PortletConfig config)	{		return config.getInitParameter(PARAM_PORTLET_RESOURCE_URL_FACTORY);	}	protected ServletContextProvider getServletContextProvider()	{		return servletContextProvider;	}	protected ServletContext getServletContext(GenericPortlet portlet, PortletRequest request,			PortletResponse response)	{		return getServletContextProvider().getServletContext(portlet);	}	protected HttpServletRequest getHttpServletRequest(GenericPortlet portlet,			PortletRequest request, PortletResponse response)	{		return getServletContextProvider().getHttpServletRequest(portlet, request);	}	protected HttpServletResponse getHttpServletResponse(GenericPortlet portlet,			PortletRequest request, PortletResponse response)	{		return getServletContextProvider().getHttpServletResponse(portlet, response);	}	protected String getWicketConfigParameter(PortletRequest request, String paramName,			String defaultValue)	{		return defaultValue;	}	protected String getWicketUrlPortletParameter(PortletRequest request)	{		return WICKET_URL_PORTLET_PARAMETER;	}	protected String getWicketFilterPath()	{		return wicketFilterPath;	}	protected String getWicketURL(PortletRequest request, String pageType, String defaultPage)	{		String wicketURL = null;		if (request instanceof ActionRequest)		{			wicketURL = request.getParameter((String)request					.getAttribute(WicketPortlet.WICKET_URL_PORTLET_PARAMETER_ATTR));		}		else		{			wicketURL = request.getParameter((String)request					.getAttribute(WicketPortlet.WICKET_URL_PORTLET_PARAMETER_ATTR) +					request.getPortletMode().toString());		}		if (wicketURL == null)		{			wicketURL = getWicketConfigParameter(request, CONFIG_PARAM_PREFIX + pageType,					defaultPage);		}		return wicketURL;	}	protected void doView(RenderRequest request, RenderResponse response) throws PortletException,			IOException	{		processRequest(request, response, VIEW_REQUEST, PARAM_VIEW_PAGE);	}	protected void doEdit(RenderRequest request, RenderResponse response) throws PortletException,			IOException	{		processRequest(request, response, EDIT_REQUEST, PARAM_EDIT_PAGE);	}	protected void doHelp(RenderRequest request, RenderResponse response) throws PortletException,			IOException	{		processRequest(request, response, HELP_REQUEST, PARAM_HELP_PAGE);	}	protected void doCustom(RenderRequest request, RenderResponse response)			throws PortletException, IOException	{		processRequest(request, response, CUSTOM_REQUEST, PARAM_CUSTOM_PAGE);	}	public void processAction(ActionRequest request, ActionResponse response)			throws PortletException, IOException	{		processRequest(request, response, ACTION_REQUEST, PARAM_ACTION_PAGE);	}	protected void processRequest(PortletRequest request, PortletResponse response,			String requestType, String pageType) throws PortletException, IOException	{		String wicketURL = null;		String wicketFilterPath = null;		String wicketFilterQuery = null;		request.setAttribute(WICKET_URL_PORTLET_PARAMETER_ATTR,				getWicketUrlPortletParameter(request));		wicketURL = getWicketURL(request, pageType, getDefaultPage(pageType));		wicketFilterPath = getWicketConfigParameter(request, WICKET_FILTER_PATH,				this.wicketFilterPath);		wicketFilterQuery = getWicketConfigParameter(request, WICKET_FILTER_QUERY,				this.wicketFilterQuery);		boolean actionRequest = ACTION_REQUEST.equals(requestType);		WicketResponseState responseState = new WicketResponseState();		request.setAttribute(RESPONSE_STATE_ATTR, responseState);		request.setAttribute(RESOURCE_URL_FACTORY_ATTR, resourceURLFactory);		request.setAttribute(REQUEST_TYPE_ATTR, requestType);		String portletResourceURL = request.getParameter(PORTLET_RESOURCE_URL_PARAMETER);		if (portletResourceURL != null)		{			request.setAttribute(PORTLET_RESOURCE_URL_ATTR, portletResourceURL);		}		if (actionRequest)		{			ServletContext servletContext = getServletContext(this, request, response);			HttpServletRequest req = getHttpServletRequest(this, request, response);			HttpServletResponse res = getHttpServletResponse(this, request, response);			RequestDispatcher rd = servletContext.getRequestDispatcher(wicketURL);			if (rd != null)			{				// http://issues.apache.org/jira/browse/PB-2:				// provide servlet access to the Portlet components even from				// an actionRequest in extension to the JSR-168 requirement				// PLT.16.3.2 which (currently) only covers renderRequest				// servlet inclusion.				if (req.getAttribute("javax.portlet.config") == null)				{					req.setAttribute("javax.portlet.config", getPortletConfig());				}				if (req.getAttribute("javax.portlet.request") == null)				{					req.setAttribute("javax.portlet.request", request);				}				if (req.getAttribute("javax.portlet.response") == null)				{					req.setAttribute("javax.portlet.response", response);				}				try				{					rd.include(req, res);					processActionResponseState(wicketURL, wicketFilterPath, wicketFilterQuery,							(ActionRequest)request, (ActionResponse)response, responseState);				}				catch (ServletException e)				{					throw new PortletException(e);				}			}		}		else		{			PortletRequestDispatcher rd = null;			String previousURL = null;			while (true)			{				rd = getPortletContext().getRequestDispatcher(wicketURL);				if (rd != null)				{					rd.include((RenderRequest)request, (RenderResponse)response);					String redirectLocation = responseState.getRedirectLocation();					if (redirectLocation != null)					{						redirectLocation = fixWicketUrl(redirectLocation, wicketFilterPath,								wicketFilterQuery);						boolean validWicketUrl = redirectLocation.startsWith(wicketFilterPath);						if (portletResourceURL != null)						{							if (validWicketUrl)							{								HashMap parameters = new HashMap(2);								parameters										.put(												(String)request														.getAttribute(WicketPortlet.WICKET_URL_PORTLET_PARAMETER_ATTR) +														request.getPortletMode().toString(),												new String[] { redirectLocation });								parameters.put(PORTLET_RESOURCE_URL_PARAMETER,										new String[] { "true" });								redirectLocation = resourceURLFactory.createResourceURL(										getPortletConfig(), (RenderRequest)request,										(RenderResponse)response, parameters);							}							getHttpServletResponse(this, request, response).sendRedirect(									redirectLocation);						}						else if (validWicketUrl &&								((previousURL == null || previousURL != redirectLocation)))						{							previousURL = wicketURL;							wicketURL = redirectLocation;							((RenderResponse)response).reset();							responseState.reset();							continue;						}						else						{							// TODO: unhandled/unsupport RenderResponse redirect						}					}				}				break;			}		}	}	protected void processActionResponseState(String wicketURL, String wicketFilterPath,			String wicketFilterQuery, ActionRequest request, ActionResponse response,			WicketResponseState responseState) throws PortletException, IOException	{		if (responseState.getRedirectLocation() != null)		{			wicketURL = fixWicketUrl(responseState.getRedirectLocation(), wicketFilterPath,					wicketFilterQuery);			if (wicketURL.startsWith(wicketFilterPath))			{				response.setRenderParameter((String)request						.getAttribute(WicketPortlet.WICKET_URL_PORTLET_PARAMETER_ATTR) +						request.getPortletMode().toString(), wicketURL);			}			else			{				response.sendRedirect(responseState.getRedirectLocation());			}		}	}}

⌨️ 快捷键说明

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