【javaWeb】Bean包中简单说明应用

jsp:useBean

jsp:useBean用来加载JSP页面中的JavaBean 使用语法如下

<jsp:useBean
id="beanInstanceName"
scope="page|request|session|application"
class="package.class"
type=“指定应用该对象的变量类型,他必须是Bean类的名称,超类的名称,该类所实现接口名字之一。记住变量的名字是由id属性所指定的”
beanName=“指定Bean的名称,如果提供了type和beanName的属性,允许省略class属性”、、后两者属性不常用。
><useBean/>

其中id指明该JavaBean的实例变量的名称,scope指定该bean变量的有效范围,

  1. page仅仅在该页面有效。

  2. request在本次请求有效。

  3. session在本次回话有效

4.    application在服务器运行期间一直有效。  

Bean在自己的域内只加载一次!!!

scope之所以很重要是因为jsp:useBean只在不存在相同id和scope的对象时才会实例化出新的对象,如果已有id和scope都相同的对象,则直接使用已有的对象,此时jsp:useBean开始标记和结束标记之间的任何内容都将被忽略。

  jsp:setProperty

      jsp:setProperty可以设置已经实例化的bean对象的属性(每次使用useBean就为创建了一个实例),他有两方法:

第一在jsp:useBean 元素的后面使用jsp:setProperty。

<jsp:useBean id="myName"..../>
......
<jsp:setProperty name="*">//在此可以把所有请求提交过来的链接里的参数和bean中一一对应的赋值,前提是bean中和///请求的的元素名字一样,包括大小写也一样。
<jsp:setProperty name="myName" property="bean中属性器的名称,如果是setName则是name与bean中属性无关">
<jsp:setProperty name="myName" property="bean中属性的名称" value="可以指定bean中元素的值">
<jsp:setProperty name="myName" property=“bean中属性的名称” param="指定request中提交参数的名称">

      在上面设置参数过程中,name属性,property属性是必须有的,value和param是选填的。

第二种是直接把<jsp:setProperty >放入到jsp:useBean的元素内部。

<jsp:useBean id="myName">
....
<jsp:setProperty name="myName" property="bean中属性的名称">
<jsp:useBean/>

     此时只有在新建实例bean的时候会执行,如果使用现有的实例,则不执行<jsp:setBean>

jsp:getProperty

  jsp:getProperty可以获取Bean的值,用于在页面显示。语法格式为

<jsp:getProperty name="beanInstanceName" property="propertyNAME">

  name="已经存在bean实例的名称"

  property=“指定bean中的属性名称”

注意事项

  1. 不能检索一个已经被检索一次的属性,也就是说一个实例中的属性只能被检索一次。

  2. 如果getProperty 检索出来的是空值,则系统会抛出NullPointException。


font

你可能感兴趣的:(bean,javaweb)