jsp:useBean中type和class的区别

<jsp:useBean id="myBean" class="package.MyBean" scope="request"></jsp:useBean>

<jsp:useBean id="myBean" class="package.MyBean" scope="request"></jsp:useBean>

以上两种用法,当myBean不为空时,在使用上两者没有什么区别。但是当myBean被设为null后,例如request.setAttribute("myBean",null),两者在使用上就有区别了。使用class="package.MyBean"时不会抛出异常,使用type="package.MyBean"时会抛出异常。原因是当使用class时,首先在当前作用范围内查找是否存在myBean,如果存在则直接使用现成的,如果不存在则new一个。而当使用type时,如果当前范围内不存在myBean,而且又没有使用class或beanName指定type时,就会抛出异常。并且class与beanName必须指定package(即引入了包),而type可以不指定。

posted @ 2014-06-24 22:57  blackcat_333  阅读(1182)  评论(0编辑  收藏  举报