学科分类
目录
Java Web

<jsp:getProperty>标签

为了获取JavaBean的属性值,JSP规范提供了<jsp:getProperty>标签,它可以访问JavaBean的属性,并把属性的值转换成一个字符串发送到响应输出流中。如果JavaBean的属性值是一个引用数据类型的对象,<jsp:getProperty>标签会调用该对象的toString()方法,如果JavaBean的属性值为null,<jsp:getProperty>标签将会输出字符串“null”。<jsp:getProperty>标签的语法格式如下所示:

<jsp:getProperty name="beanInstanceName" property="PropertyName" />

从上面的语法格式中可以看出,<jsp:getProperty>标签中有2个属性,其含义具体如下所示:

●name:用于指定JavaBean实例对象的名称,其值应该和<jsp:useBean>标签的id属性值相同

●property:用于指定JavaBean实例对象的属性名

需要注意的是,在使用<jsp:getProperty>标签时,它的name属性和property属性都必须设置,不能省略。

至此,用于在JSP页面中操作JavaBean的三个标签都学习完了。为了让初学者更好的掌握这三个标签,接下来编写一个案例,在这个案例中将<jsp:useBean>、<jsp:setProperty>和<jsp:getProperty>这三个标签配合使用,其步骤如下所示。

(1)编写JavaBean类User,在User类中定义name、gender、education和email四个可读写属性,具体如例1所示。

例1 User.java

 1    package cn.itcast.chapter08.javabean;
 2    public class User {
 3        private String name;
 4        private String gender;
 5        private String education;
 6        private String email;
 7        public String getName() {
 8            return name;
 9        }
 10        public void setName(String name) {
 11            this.name = name;
 12        }
 13        public String getGender() {
 14            return gender;
 15        }
 16        public void setGender(String gender) {
 17            this.gender = gender;
 18        }
 19        public String getEducation() {
 20            return education;
 21        }
 22        public void setEducation(String education) {
 23            this.education = education;
 24        }
 25        public String getEmail() {
 26            return email;
 27        }
 28        public void setEmail(String email) {
 29            this.email = email;
 30        }
 31    }

(2)编写注册表单页面login.jsp用于填写用户信息,具体如例2所示。

例2 login.jsp

 1    <%@ page language="java" pageEncoding="GBK"%>
 2    <html>
 3    <head>
 4          <title>注册信息</title>
 5    </head>
 6    <body>
 7           <form action="/chapter08/userInfo.jsp" method="post">
 8              姓名:<input type="text" name="name" /> <br />
 9              性别:<input type="radio" name="gender" value="man" checked="checked" />man
 10                   <input type="radio" name="gender" value="woman" />woman   <br/>
 11              学历:<select name="education">
 12                        <option value="select">请选择</option>
 13                        <option value="high_school_student">high_school_student</option>
 14                        <option value="undergraduate">undergraduate</option>
 15                        <option value="graduate">graduate</option>
 16                        <option value="doctor">doctor</option>
 17                    </select>  <br/>
 18              邮箱:<input type="text" name="mail" /> <br />
 19                   <input type="submit" value="提交"/>
 20           </form>
 21    </body>
 22    </html>

需要注意的是,例2中的表单项名称name、性别gender、学历education与User对象的属性名称一致,而邮箱名称mail与User对象的属性名称不一致。

(3)编写处理表单的页面userInfo.jsp,在userInfo.jsp中使用三个标签将表单提交信息封装到一个User对象中,同时将这些信息在浏览器页面显示出来。userInfo.jsp文件如例3所示。

例3 userInfo.jsp

 1    <%@ page language="java" pageEncoding="GBK"%>
 2    <html>
 3    <head>
 4    <title>用户信息</title>
 5    </head>
 6    <body>
 7            <jsp:useBean id="user" class="cn.itcast.chapter08.javabean.User" />
 8            <jsp:setProperty name="user" property="*" />
 9            <jsp:setProperty name="user"  property="email" param="mail" />
 10            姓名:<jsp:getProperty name="user" property="name" />  <br />
 11            性别:<jsp:getProperty name="user" property="gender" /> <br />
 12            学历:<jsp:getProperty name="user" property="education" /> <br />
 13            邮箱:<jsp:getProperty name="user" property="email" /> 
 14    </body>
 15    </html>

在例3中,使用了两个<jsp:setProperty>标签,第一个标签将property属性的值设置为星号(*),它用于设置User对象中和请求参数同名的属性的值,第二个标签中设置了param属性,它将name属性值为mail的表单项传递的值赋值给User的email属性。在代码的第10行到第13行,使用四个<jsp:getProperty>标签分别获得User对象属性的值并输出到浏览器页面。

(4)在浏览器地址栏中输入URL地址http://localhost:8080/chapter08/login.jsp访问login.jsp,并填入用户信息,浏览器显示结果如图1所示。

图1 运行结果

点击图1中的【提交】按钮,可以看到浏览器显示出了User对象四个属性的值,如图2所示。

图2 运行结果

由程序的运行结果可以看出,<jsp:useBean>、<jsp:setProperty>和<jsp:getProperty>这三个标签配合使用,成功完成了JSP标签访问JavaBean实现提交用户信息的功能。

点击此处
隐藏目录