JavaBean是一个遵循某种特定写法的Java类,有以下特点:
- 必需具有一个无参的构造函数
- 属性必需私有化
- 私有化的属性必需通过public类型的方法暴露给其它程序,其方法命名也有一定的规范
范例:
package lzj.learn;
public class Person{ private String name; private String age;//私有化的属性 public Person(){ }//无参的构造函数; public String getName(){ return name; } public void setName(String name){ this.name = name; } pubilc int getAge(){ return age; } public void setAge(int age){ this.age = age; }//通过public方法对私有化属性进行添加并查询;其方法名固定为set、get后接属性名且属性名第一个字母要大写; }
在JSP中使用JavaBean
JSP提供了3个关于JavaBean组件的动作标签
- <jsp:useBean>标签:表明在JSP页面中查找或实例化一个JavaBean组件;
语法:
<jsp:useBean id = "xxx" class = "package.class" scope = "page|request|session|application" />
其中id属性表示所实例化JavaBean的对象名,class属性表示其完整的类名,必需带有包名,scope属性表示其实例化对象的储存的域范围,默认是page;
- <jsp:setProperty>标签:设置一个JabaBean组件的属性
语法:
<jsp:setProperty name = "beanName" property = "propertyName" value = "string字符串|<%=expression%>|parameterName" />
其中name属性的实例化的JavaBean对象名,也就是前面<jsp:useBean>标签中的id属性所设定的对象名;property属性是所要设置的属性名,value属性可包含字符串、表达式或变量参数值;变量参数值即表示其值可由自己通过parameterName=“xxx”设定;
- <jsp:getProperty>标签:获取一个JavaBean组件的属性
语法:
<jsp:getProperty name = "beanName" property = "PropertyName" />
其中name、property属性意义和上述的setProperty标签的属性类似;
结合3大jsp相关的javabean标签和上述给的Person类做一个简单的JSP页面:
<% page language = "java" import = "java.util.*" pageEncoding = "UTF-8" %> <jsp:useBean id = "person" class="lzj.learn.Person" scope = "page" /> <% person.setName("小兆") %> <jsp:setPorperty name = "person" property = "age" param = "parameterName" /> <! DOCTYPE HTML> <html> <head> <title>jsp:javabean使用范例</title> <head> <body> <h2>姓名:<%=peason.getName()%></h2> <h2>年龄:<jsp:getPorperty name = "person" property = "age" /></h2> </body> </html>
由于我们在使用<jsp:setPorperty>标签时所设置的参数值是变量参数param,因此在调用该jsp时要指定其值,类似http://xxx.xxx/xxx/xxx.jsp?parameterName=23这样,将属性age的值设定为23后再将其显示;