getpropertytag.java

来自「Jodd是一个开源的公用Java基础类库」· Java 代码 · 共 96 行

JAVA
96
字号
package jodd.servlet.tags.basic;

import java.io.IOException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

import jodd.bean.BeanUtil;
import jodd.util.StringUtil;

/**
 * Reads property from an java bean object stored in specified scope. Bean
 * object is retrieved by name and then property value is read from it.
 */
public class GetPropertyTag extends TagSupport {

	private String beanName = null;
	/**
	 * Sets the bean name.
	 *
	 * @param v
	 */
	public void setBean(String v) {
		beanName = v;
	}
	/**
	 * Returns bean name.
	 *
	 * @return bean name
	 */
	protected String getBean() {
		return beanName;
	}

	private String name = "";
	/**
	 * Sets the property name.
	 *
	 * @param v
	 */
	public void setName(String v) {
		name = v;
	}
	/**
	 * Returns bean parameter name.
	 *
	 * @return bean parameter name
	 */
	protected String getName() {
		return name;
	}

	private String scope = "page";
	/**
	 * Sets the bean scope. May be one of the following:<br>
	 * request<br>
	 * session<br>
	 * page (i.e. pageScope, which is also default scope)<br>
	 *
	 * @param v
	 */
	public void setScope(String v) {
		scope = v;
	}

	/**
	 * Get the bean object from the required scope.
	 *
	 * @return bean object
	 */
	protected Object getBeanObject() {
		Object bean = null;
		if (scope.equals("page")) {
			bean = pageContext.getAttribute(beanName);
		} else if (scope.equals("request")) {
			bean = ((HttpServletRequest)pageContext.getRequest()).getAttribute(beanName);
		} else if (scope.equals("session")) {
			bean = ((HttpServletRequest)pageContext.getRequest()).getSession().getAttribute(beanName);
		}
		return bean;
	}

	public int doStartTag() {
		try {
			JspWriter out = pageContext.getOut();
			Object bean = getBeanObject();
			if (bean != null) {
				out.print(StringUtil.toString(BeanUtil.getProperty(bean, name)));
			}
		} catch (IOException ioe) {
		}
		return SKIP_BODY;
	}
}

⌨️ 快捷键说明

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