在面向对象思想的程序中,一定少不了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 文件