在面向对象思想的程序中,一定少不了javaBean,JSP 也提供了一些标签,用来支持javaBean,如下面的例子所示:
范例:
Person.java
package com.haizhu.domain; public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
javaBeanInJsp.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'javaBeanInJsp.jsp' starting page</title> </head> <body> <!-- scope 表示作用范围是 page,找出这个bean,没有的话就创建一个,这句话执行之后,肯定有一个javaBean存在了 --> <jsp:useBean id="person" class="com.haizhu.domain.Person" scope="page"> 这里的内容只有创建Bean的时候才显示。比如,将scope=“session”,则刷新的时候这里的东西就不显示了。而page的时候刷新是显示的。<br> </jsp:useBean> <!-- 设置属性值,name表示domain的名字,property表示属性的名字,value表示赋的值内容 --> <jsp:setProperty name="person" property="name" value="Haizhu"/><!-- 这里的value也可以不设置,直接在地址栏后面通过“/javaBeanInJsp.jsp?name=Haizhu”来赋值,也是可以的 --> <jsp:setProperty property="age" name="person"/> <!-- 地址栏通过 " http://localhost:8080/JspDemo/javaBeanInJsp.jsp?age=47 "传值进行设置 --> <!-- 将这个值在页面中进行显示 --> <%=person.getName() %><br> <%=person.getAge() %> <!-- 支持8种基本类型的自动转换:问号后面传递的age是String类型,这里自动转成int类型 --> ************************************************************************ <!-- 也可以通过getProperty取值 --> <jsp:getProperty property="name" name="person"/><br> <!-- 一定要注意,这里的值如果是空的话,会程序报错 NULL,所以取值之前一定要判断,这就非常麻烦 --> <jsp:getProperty property="age" name="person"/> <!-- 所以,后面引入了 EL 表达式,这样的话如果为空就输出一个空字符串 --> </body> </html>
结果:
这里的内容只有创建Bean的时候才显示。比如,将scope=“session”,则刷新的时候这里的东西就不显示了。而page的时候刷新是显示的。 Haizhu 47 ************************************************************************ Haizhu 47
Tips:
1、在 \Tomcat\work\Catalina\localhost 目录下,可以查看到 JSP 编译后的 生成的 java 代码,以及生成的 class 文件