vraptorrequest.java

来自「pojo的mvc框架」· Java 代码 · 共 77 行

JAVA
77
字号
package xyz.frame.http;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;import xyz.frame.LogicRequest;import xyz.frame.core.XyzController;import xyz.frame.factory.FactoryException;/** * A simple request wrapper for dealing with variable lookup. *  * @author Guilherme Silveira */public class XyzRequest extends HttpServletRequestWrapper {	private LogicRequest context;	private XyzController controller;	/**	 * Constructor for this wrapper	 * 	 * @param req	 *            request	 * @param controller	 *            the controller	 */	public XyzRequest(HttpServletRequest req, XyzController controller) {		super(req);		this.controller = controller;	}	/**	 * Overriding getAttribute	 * 	 * @see javax.servlet.ServletRequestWrapper#getAttribute(java.lang.String)	 */	@Override	public Object getAttribute(String key) {		if (super.getAttribute(key) != null				|| (!controller.getWebApplication().getFactoryManager()						.canInstantiate(key))) {			return super.getAttribute(key);		}		return instantiate(key);	}	/**	 * Instantiates the desired key	 * 	 * @param key	 *            desired key	 * @return the object	 */	private Object instantiate(String key) {		try {			return controller.getWebApplication().getFactoryManager()					.instantiate(key, this.context,							this.controller.getIntrospector());		} catch (FactoryException e) {			throw new RuntimeException(e);		}	}	/**	 * Changes the current context	 * 	 * @param context	 *            context	 */	public void setCurrentRequest(LogicRequest context) {		this.context = context;	}}

⌨️ 快捷键说明

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