[转]Jsp 与 JavaBean
JavaBean 是一个遵循特定写法的 Java 类,它有以下特点:
1. Java 类具有一个无参的构造函数
2. 属性必须私有化。
3. 私有化的属性通过 public 类型的方法暴露给其它程序,并且方法命名遵守相关命名规范。
JavaBean 在 J2EE 开发中,用于封装数据,对于遵循以上写法的 JavaBean 组件,其它程序可以通过反射
技术实例化 JavaBean 对象,并且通过反射那些遵守命名规范的方法,从而获知 JavaBean 的属性,进而
调用其属性保存数据。
在 Jsp 中使用 JavaBean
Jsp 技术提供了三个关于 JavaBean 组件的动作元素,即 Jsp 标签,它们分别为:
<jsp:useBean> 用于在 Jsp 页面中查找或实例化一个 JavaBean 组件。
<jsp:setProperty> 用于在 Jsp 页面中设置一个 JavaBean 组件的属性。
<jsp:getProperty> 用于在 Jsp 页面中获取一个 JavaBean 组件的属性。
public class Person { private String name; private int age; }
先写一个这样的类,然后右键 -> Source -> Generate Getters and Setters 就会由 eclipse 自动生成 get / set 方法。
<jsp:useBean id="person" class="cn.itcast.domain.Person" scope="page"></jsp:useBean> <!-- 手动赋值 --> <jsp:setProperty name="person" property="name" value="xx123xx"></jsp:setProperty> <%=person.getName()%><br /> <hr /> <!-- 用请求参数给 bean 属性赋值 --> <jsp:setProperty name="person" property="name" param="name" /> <jsp:setProperty name="person" property="age" param="age" /> <!-- http://localhost:8088/day09/1.jsp?name=%E4%B8%AD%E5%9B%BD%20%E4%BA%BA&age=121&birthday=2015-01-12 --> <%-- <jsp:setProperty name="person" property="birthday" value="<%=new Date() %>" /> --%> <%=person.getName()%><br /> <%=person.getAge()%><br /> <%=person.getBirthday()%><br /> <hr /> <jsp:setProperty property="*" name="person"/> <%=person.getName()%><br /> // 此句与下面的得到相同结果。 <jsp:getProperty property="age" name="person"/><br /> <jsp:getProperty property="birthday" name="person"/><br />
以上代码,演示使用了 各标签的使用场景和方法。
如果一个 JavaBean 实例对象的某个属性值为 null 那么 jsp:getProperty 标签输出的结果是 "null" 字符串。