自定义标签中获取Spring Bean
来源:互联网 发布:同城o2o源码 编辑:程序博客网 时间:2024/04/27 02:08
public class ServiceTag extends BaseBodyTagSupport { private String beanName; private String methodName; private String id; public List params = new ArrayList(); public void setBeanName(String beanName) { this.beanName = beanName; } public void setMethodName(String methodName) { this.methodName = methodName; } public void setId(String id) { this.id = id; } public int doEndTag() throws JspException { Object bean = null; Method method = null; //取得bean对象 try{ bean = SpringContextUtil.getBean(beanName); }catch(Exception ex){ throw new JspException("get bean error: " + beanName); } //通过反射取得方法 if(bean != null){ try { method = bean.getClass().getMethod(methodName, TagUtil.getParameterTypes(params)); }catch(Exception e) { throw new JspException("get method error: " + beanName + "." + methodName); } }else{ throw new JspException("ServiceTag Error: bean [" + beanName + "] is null"); } //通过反射执行方法,得到结果 Object result = null; if(method != null){ try { result = method.invoke(bean, TagUtil.getParameterValues(params)); }catch(Exception e){ throw new JspException("method invoke error"); } } //将结果存储在ValueStack中 ValueStack vs = TagUtils.getStack(pageContext); vs.getContext().put(id, result); return EVAL_PAGE; } }
package org.search.api.util;import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;/** * 获取spring容器,以访问容器中定义的其他bean * * <pre> * 一定要在spring.xml中加上: * <bean id='SpringContextUtil ' class='org.search.api.util.SpringContextUtil' singleton='true'/> * 当对SpringContextUtil 实例时就自动设置applicationContext,以便后来可直接用applicationContext * </pre> * * @author Administrator * */public class SpringContextUtil implements ApplicationContextAware {private static ApplicationContext applicationContext;@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {SpringContextUtil.applicationContext = applicationContext;}public static ApplicationContext getApplicationContext() {return applicationContext;}public static Object getBean(String name) throws BeansException {return applicationContext.getBean(name);}}
0 0
- 自定义标签中获取Spring Bean
- 在自定义标签子类获取Spring中注册的bean
- 【JSF小记】Managed bean中获取JSF标签自定义属性
- 在struts 自定义标签中注入spring bean
- Spring中使用两种Aware接口自定义获取bean
- 自定义标签:在JSP页面中动态执行Spring Bean的方法
- spring 中怎么创建自定义标签来简化bean的配置?
- Spring中bean标签中的parent属性
- spring中如何自定义标签
- Spring中从ApplicationContext中获取bean与从bean工厂中获取bean的区别
- 在servlet中获取spring Bean对象
- 在spring的bean中获取ServletContext
- Spring框架中获取Bean实例
- Servlet,Webservice中spring 获取Bean方式
- jsp中获取spring配置文件中的bean
- 获取Spring 容器中bean的方法
- 在spring的bean中获取ServletContext
- spring 项目中获取bean 的方法
- GIS相关杂志资源集合(含免费阅读地址)
- 电脑内存常见问题处理方法
- 红黑树操作详解
- 那些繁华哀伤终成过,请不要失望,平凡是为了最美的荡气回肠。
- 实现无密码登录Win8系统的方法
- 自定义标签中获取Spring Bean
- javascript之DOM操作
- 堆排序的体会
- IOS给View设置背景图片(代码实现)
- b/s页面传值方法
- 为什么.net中引用dll文件属性窗口中的“复制到本地”属性不可用(Why is the Copy Local property for my reference disabled?)
- 网络连接故障处理六部曲
- 我们之所以觉得自己不快乐,是因为我们追求的不是幸福,而是比别人幸福。
- mysql处理百万级以上的数据时如何提高其查询速度的方法