JavaBean规范学习

JavaBean是一种特殊的Java类,他遵从一定的设计模式,开发工具和其他组件可以根据这种模式来调用JavaBean。一个类如果想成为一个JavaBean,该类必须遵从如下的要求格式:

 

1.  一个javaBean类必须是一个公共类,类都得设置为public的

2.  一个javaBean类必须有一个空的构造函数。类定义中必须有一个不带有参数的公用构造器。此构造器也应该通过调用各个特性的设置方法来设置特性的缺省值。当然,如果你在代码中不明文制定不带参数的构造器,系统也会自动添加构造器。

3.  一个javaBean类不应有公共属性,所有属性都定义为为private访问界限

4.  类的属性应该通过一组存取方法(getXxx和setXxx)来访问。特别的是,对于boolean或Boolean的属性,访问器可以设置为isXXX. 

 

编写一个简单的JavaBean,包含三个属性name,password,age,该javaBean的代码TestJavaBean.java 如下:

Java代码
  1. package  com.longweir.testJB;  
  2.   
  3. public   class  TestJavaBean  
  4. {  
  5.     private  String name;  
  6.     private  String password;  
  7.     private   int  age;  
  8.   
  9.     //name属性的访问器和修改器   
  10.     public   void  setName(String name)  
  11.     {  
  12.         this .name=name;  
  13.     }  
  14.   
  15.     public  String getName()  
  16.     {  
  17.         return  name;  
  18.     }  
  19.   
  20.   
  21.    //password属性的访问器和修改器   
  22.   
  23.     public   void  setPassword(String password)  
  24.     {  
  25.         this .password=password;  
  26.     }  
  27.   
  28.     public  String getPassword()  
  29.     {  
  30.         return  password;  
  31.     }  
  32.   
  33.   
  34.     //age属性的访问器和修改器   
  35.     public   void  setAge( int  age)  
  36.     {  
  37.         this .age=age;         
  38.     }  
  39.   
  40.     public   int  getAge()  
  41.     {  
  42.         return  age;  
  43.     }  
  44.   
  45. };  
package com.longweir.testJB;

public class TestJavaBean
{
	private String name;
	private String password;
	private int age;

    //name属性的访问器和修改器
	public void setName(String name)
	{
		this.name=name;
	}

	public String getName()
	{
		return name;
	}


   //password属性的访问器和修改器

	public void setPassword(String password)
	{
		this.password=password;
	}

	public String getPassword()
	{
		return password;
	}


    //age属性的访问器和修改器
	public void setAge(int age)
	{
		this.age=age; 		
	}

	public int getAge()
	{
		return age;
	}

};

编译该JavaBean文件,将生成一个com的文件夹(编译好的TestJavaBean.class文件在该目录的子目录中),将com文件夹及其子目录的内容全部拷贝到虚拟目录的WEB-INF/classes目录下即可。

 

编写一个jsp文件TestJavBeanDemo03.jsp 来调用javaBean

Java代码
  1. <%@ page contentType= "text/html;charset=GBK" %>  
  2.   
  3. <jsp:useBean id="tjb_title"   class = "com.longweir.testJB.TestJavaBean"  scope= "page"  />  
  4. <%  
  5.     request.setCharacterEncoding("GBK" );  
  6. %>  
  7.   
  8. <!--   
  9. 将从表单获取的值赋值给属性  
  10. param表示将请求的参数作为值赋值给属性,下面代码中指将request请求中的表单参数中的值赋给javaBean中的属性  
  11. -->  
  12. <jsp:setProperty name="tjb_title"  property= "name"  param= "name_form" />  
  13. <jsp:setProperty name="tjb_title"  property= "password"  param= "password_form" />  
  14. <jsp:setProperty name="tjb_title"  property= "age"  param= "age_form" />  
  15.   
  16.   
  17.   
  18. <!--获取javaBean属性值显示即可-->  
  19.   
  20. <h3>姓名:<jsp:getProperty name="tjb_title"  property= "name" /></h3>  
  21. <h3>密码:<jsp:getProperty name="tjb_title"  property= "password" /></h3>  
  22. <h3>年龄:<jsp:getProperty name="tjb_title"  property= "age" /></h3>  
<%@ page contentType="text/html;charset=GBK"%>

<jsp:useBean id="tjb_title" class="com.longweir.testJB.TestJavaBean" scope="page" />
<%
    request.setCharacterEncoding("GBK");
%>

<!-- 
将从表单获取的值赋值给属性
param表示将请求的参数作为值赋值给属性,下面代码中指将request请求中的表单参数中的值赋给javaBean中的属性
-->
<jsp:setProperty name="tjb_title" property="name" param="name_form"/>
<jsp:setProperty name="tjb_title" property="password" param="password_form"/>
<jsp:setProperty name="tjb_title" property="age" param="age_form"/>



<!--获取javaBean属性值显示即可-->

<h3>姓名:<jsp:getProperty name="tjb_title" property="name"/></h3>
<h3>密码:<jsp:getProperty name="tjb_title" property="password"/></h3>
<h3>年龄:<jsp:getProperty name="tjb_title" property="age"/></h3>

 

 编写一个表单页面tjbDemo03.html ,用来获取客户端提交的数据 代码如下:

Html代码
  1. < html >   
  2. < head >   
  3. < title > 输入提交数据 </ title >   
  4. </ head >   
  5. < body >      
  6.    < form   name = "testJB"   action = "TestJavaBeanDemo03.jsp"   method = "post"   >   
  7.        < table   width = "300"   border = "0" >       
  8.        < tr   >   
  9.           < td   scope = "2" >  请输入数据 </ td >   
  10.        </ tr >   
  11.        < tr >   
  12.            < td > 用户名: </ td >   
  13.            < td > < input   type = "text"   name = "name_form" > </ td >   
  14.        </ tr >               
  15.         < tr >   
  16.            < td > 密码: </ td >   
  17.            < td > < input   type = "text"   name = "password_form" > </ td >   
  18.        </ tr >   
  19.        < tr >   
  20.            < td > 年龄: </ td >   
  21.            < td > < input   type = "text"   name = "age_form" > </ td >   
  22.        </ tr >   
  23.        < tr >   
  24.            < td > < input   type = "submit"   value = "提交"   > </ td >   
  25.            < td > < input   type = "reset"   value = "取消" > </ td >   
  26.        </ tr >   
  27.        </ table >   
  28.     </ form >   
  29.   
  30. </ body >   
  31. </ html >   
<html>
<head>
<title>输入提交数据</title>
</head>
<body>   
   <form name="testJB" action="TestJavaBeanDemo03.jsp" method="post" >
       <table width="300" border="0">	   
	   <tr >
	      <td scope="2"> 请输入数据</td>
	   </tr>
	   <tr>
	       <td>用户名:</td>
		   <td><input type="text" name="name_form"></td>
	   </tr>      	  
	    <tr>
	       <td>密码:</td>
		   <td><input type="text" name="password_form"></td>
	   </tr>
	   <tr>
	       <td>年龄:</td>
		   <td><input type="text" name="age_form"></td>
	   </tr>
	   <tr>
	       <td><input type="submit" value="提交" ></td>
		   <td><input type="reset" value="取消"></td>
	   </tr>
	   </table>
	</form>

</body>
</html>

 

以上提交后jsp文件可以正常显示客户端表单中提交的数据.

 

对于TestJavaBeanDemo03.jsp 中的如下代码:

Java代码
  1. <jsp:setProperty name= "tjb_title"  property= "name"  param= "name_form" />     
  2. <jsp:setProperty name="tjb_title"  property= "password"  param= "password_form" />     
  3. <jsp:setProperty name="tjb_title"  property= "age"  param= "age_form" />    
<jsp:setProperty name="tjb_title" property="name" param="name_form"/>   
<jsp:setProperty name="tjb_title" property="password" param="password_form"/>   
<jsp:setProperty name="tjb_title" property="age" param="age_form"/>  

 需要说明的是

1. param后的参数是来自request请求中的表单的参数.如果此处参数值不和html表单中的参数名一致的话,将无法获取提交的值,那么String将显示为null,int 将显示为0

 

2. 如果提交表单中的参数的name名和javaBean中的属性名一致的话,即:

Html代码
  1. < tr >   
  2.            < td > 用户名: </ td >   
  3.            < td > < input   type = "text"   name = "name" > </ td >   
  4.        </ tr >               
  5.         < tr >   
  6.            < td > 密码: </ td >   
  7.            < td > < input   type = "text"   name = "password" > </ td >   
  8.        </ tr >   
  9.        < tr >   
  10.            < td > 年龄: </ td >   
  11.            < td > < input   type = "text"   name = "age" > </ td >   
  12.        </ tr >   
<tr>
	       <td>用户名:</td>
		   <td><input type="text" name="name"></td>
	   </tr>      	  
	    <tr>
	       <td>密码:</td>
		   <td><input type="text" name="password"></td>
	   </tr>
	   <tr>
	       <td>年龄:</td>
		   <td><input type="text" name="age"></td>
	   </tr>

 那么,jsp中的代码可改为:

Java代码
  1. <jsp:setProperty name= "tjb_title"  property= "name"  param= "name_form" />     
  2. <jsp:setProperty name="tjb_title"  property= "password"  param= "password_form" />     
  3. <jsp:setProperty name="tjb_title"  property= "age"  param= "age_form" />    
  4.   
  5. 可改为以句话即可:  
  6. <jsp:setProperty name="tjb_title"  property= "*"  />  
  7. 使用*代替即可,jsp会自动查找请求表单中的参数名和javaBean中的属性匹配然后赋值  
<jsp:setProperty name="tjb_title" property="name" param="name_form"/>   
<jsp:setProperty name="tjb_title" property="password" param="password_form"/>   
<jsp:setProperty name="tjb_title" property="age" param="age_form"/>  

可改为以句话即可:
<jsp:setProperty name="tjb_title" property="*" />
使用*代替即可,jsp会自动查找请求表单中的参数名和javaBean中的属性匹配然后赋值

 3. setProperty可以直接手动指定值,使用value属性即可.

     <jsp:setProperty name="tjb_title" property="name" value="Laurence" />

  直接对javaBean中的name属性赋值。

注意:value和param两个参数不能同时使用,只能使用其中1个  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值