标签:修改器 字符 his 必须 Servle 查看 span 私有化 私有
JavaBean是一个遵循特定写法的Java类,它通常有如下特点:
JavaBean在J2EE开发中,通常用于封装数据,对于遵循以上写法的JavaBean组件,其他程序可以通过反射技术实例化JavaBean对象,并通过反射那些遵循命名规范的方法,从而获取JavaBean的属性和设置属性的值。
JavaBean示例:
package com.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; } }
JavaBean可以有多个属性,属性可以是任意类型,每个属性通常都需要有相应的setter和getter方法,setter方法称为属性修改器,getter方法称为属性访问器。
setter和getter方法命名必须以set、get开始,其后跟上对应的属性名,属性名第一个字母大写。
一个JavaBean的某个属性也可以只有getter或setter方法,这样的属性称之为只读、只写属性。
JSP技术中提供了三个JavaBean相关的标签:
<jsp:useBean>标签用于在指定的域范围查找指定名称的JavaBean对象:如果存在,则直接返回该JavaBean对象的引用,如果不存在则实例化一个新的JavaBean对象,并将它以指定名称存储到指定的域范围。
常用语法:
<jsp:useBean id="beanName" class="package.class" scope="page|request|session|application" /> - id属性用于指定JavaBean实例对象的引用名称 - class属性用于指定JavaBean的完整类名(即必须带有包名) - scope属性用于指定JavaBean实例对象所存储的域范围,值只能是page、request、session、application中的一个,默认值为page
示例:
<%@ page import="com.domain.Person" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>useBean示例</title> </head> <body> <jsp:useBean id="person1" class="com.domain.Person"></jsp:useBean> <% out.print(person1); %> <br> <% Person person = new Person(); pageContext.setAttribute("person2", person); out.print(person); %> <br> <jsp:useBean id="person2" class="com.domain.Person"></jsp:useBean> <% out.print(person2); %> </body> </html>
运行结果:
person1在使用<jsp:useBean>标签是当前域没有person1对象。person2在使用<jsp:useBean>标签时,当前域中已经存在person对象。
查看翻译后的Servlet,可以看到创建的时候先去指定域查找是否存在对应的JavaBean,存在直接返回,不存在则新创建一个。
语法:
<jsp:useBean ...> Body </jsp:useBean>
功能:Body部分的内容只有在<jsp:useBean>标签创建JavaBean实例对象时才执行。
<jsp:setProperty>用于设置JavaBean的属性
语法:
<jsp:setProperty name="beanName" property="propertyName" value="String | <%= experession %>"/> <jsp:setProperty name="beanName" property="propertyName" param="parameName"/> <jsp:setProperty name="beanName" property="*" />
name属性用于指定JavaBean对象的名称。
property属性用于指定JavaBeran实例对象的属性名。
value属性用于指定JavaBean对象的某个属性的值,value的值可以是字符串,也可以是表达式,该表达式计算的结果必须与要设置的JavaBean属性的类型一致。
param属性用于将JavaBean实例对象的某个属性之设置为一个请求参数的值,该属性同样会自动转换成要设置的JavaBean属性的类型(只支持8中基本类型的转换,将请求参数的字符串转换成基本类型,并赋值到bean属性中)。
property="*"时,则使用所有请求参数为bean赋值,请求参数名称必须和JavaBean的名称一致。
举例:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>setProperty举例</title> </head> <body> <jsp:useBean id="person1" class="com.domain.Person" /> <jsp:setProperty name="person1" property="name" value="zhangsan"/> <jsp:setProperty name="person1" property="age" value="18"/> <% out.print(person1); %> <br> <jsp:useBean id="person2" class="com.domain.Person" /> <jsp:setProperty name="person2" property="name" param="name"/> <jsp:setProperty name="person2" property="age" param="age"/> <% out.print(person2); %> <br> <jsp:useBean id="person3" class="com.domain.Person"/> <jsp:setProperty name="person3" property="*"/> <% out.print(person3); %> </body> </html>
运行结果:
<jsp:getProperty>标签用于读取JavaBean对象的属性,然后将读取的属性值转换成字符串输出到响应正文中。
语法:
<jsp:getProperty name="beanName" property="propertyName"/>
name属性用于指定实例对象的名称。
property属性用于指定JavaBean实例对象的属性名。
如果一个JavaBean实例对象的某个属性为null,那么使用<jsp:getProperty>标签的输出结果是一个内容为“null”的字符串。
举例:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>getProperty举例</title> </head> <body> <jsp:useBean id="person" class="com.domain.Person"/> <jsp:setProperty name="person" property="name" value="zhangsan" /> <jsp:setProperty name="person" property="age" value="18" /> name = <jsp:getProperty name="person" property="name"/><br> age = <jsp:getProperty name="person" property="age"/> </body> </html>
运行结果:
标签:修改器 字符 his 必须 Servle 查看 span 私有化 私有
原文地址:https://www.cnblogs.com/songchj-bear/p/10960442.html