一、定义

  1   JavaBean是一个遵循特定写法的Java类,它通常具有如下特点:

  • 这个Java类必须具有一个无参的构造函数
  • 属性必须私有化。
  • 私有化的属性必须通过public类型的方法暴露给其它程序即要有getset()方法,并且方法的命名也必须遵守一定的命名规范。

  二、在java中使用javabean

  JSP技术提供了三个关于JavaBean组件的动作元素,即JSP标签,它们分别为:

  • <jsp:useBean>标签:用于在JSP页面中查找或实例化一个JavaBean组件。
  • <jsp:setProperty>标签:用于在JSP页面中设置一个JavaBean组件的属性。
  • <jsp:getProperty>标签:用于在JSP页面中获取一个JavaBean组件的属性。

  2.1  <jsp:useBean>标签

  <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。

  • 应用:

index.jsp:

 <%@ page language="java" import="java.util.Date" import="bo.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>First Jsp</title>
</head>
<body>
<jsp:useBean id="stu" class="bo.Student" scope="request"></jsp:useBean>
<jsp:setProperty property="name" name="stu" value="张三"/>
<jsp:setProperty property="passWd" name="stu" value="123520"/>
<% session.setAttribute("stu", stu); %>
<jsp:forward page="html/a.jsp"></jsp:forward>
</body>
</html>

bo包里的javaBean:

html/a.jsp:
 <%@ page language="java" import="bo.*" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
Student stu=(Student)session.getAttribute("stu");  //getAttribute()得到的是Object类型
out.print(stu.getName()+"="+stu.getPassWd());
%>
</body>
</html>

结果:

  

  2.2  <jsp:setProperty>标签

    <jsp:setProperty>标签用于设置和访问JavaBean对象的属性。

    语法格式一:
    <jsp:setProperty name="beanName" property="propertyName" value="string字符串"/>

  语法格式二:
    <jsp:setProperty name="beanName" property="propertyName" value="<%= expression %>" />

  语法格式三:
    <jsp:setProperty name="beanName" property="propertyName" param="parameterName"/>

  语法格式四:
    <jsp:setProperty name="beanName" property= "*" />
  name属性用于指定JavaBean对象的名称。
  property属性用于指定JavaBean实例对象的属性名。
  value属性用于指定JavaBean对象的某个属性的值,value的值可以是字符串,也可以是表达式。为字符串时,该值会自动转化为JavaBean属性相应的类型,如果value的值是一个表达式,那么该表达式的计算结果必须与所要设置的JavaBean属性的类型一致。
 
  param属性用于将JavaBean实例对象的某个属性值设置为一个请求参数值,该属性值同样会自动转换成要设置的JavaBean属性的类型。

  2.2.1 使用jsp:setProperty标签设置person对象的属性值

 1 <jsp:useBean id="my" class="jspprojec.Person" scope="request"></jsp:useBean>
2
3 <jsp:setProperty property="name" name="my" value="王五"/>
4 <jsp:setProperty property="sex" name="my" value="n"/>
5
6 <%
7 session.setAttribute("my", my);
8 %>
9
10 <jsp:forward page="index1.jsp"></jsp:forward>

    //创建一个Person的对象my之后,用《jsp:setProperty》标签给对象name="my" 的property="name"属性设置值为value="王五";

    2.2.2 使用请求参数为bean的属性赋值

<jsp:useBean id="my" class="jspprojec.Person" scope="request"></jsp:useBean>

<jsp:setProperty property="name" name="my"  param="name"/>

<%
 session.setAttribute("my", my);
%> <jsp:forward page="index1.jsp"></jsp:forward>
index1.jsp:
1 <%
2 Person p=(Person)session.getAttribute("my");
3 out.print(p.getName());
4 out.print(p.getSex());
5 %>

我们在浏览器输入 http://localhost:8080/jspprojec/index.jsp?name=zjamgsm   就会获取name的值赋给my对象的name属性。

    2.2.3  使用所有请求参数为bean的属性赋值

1 <jsp:useBean id="my" class="jspprojec.Person" scope="request"></jsp:useBean>
2
3 <jsp:setProperty property="*" name="my" />
4
5 <%
6 session.setAttribute("my", my);
7 %>
8
9 <jsp:forward page="index1.jsp"></jsp:forward>
index1.jsp:
1 <%
2 Person p=(Person)session.getAttribute("my");
3 out.print(p.getName());
4 out.print(p.getSex());
5 %>

我们在浏览器输入 http://localhost:8080/jspprojec/index.jsp?name=zjamgsm&sex=f   就会从地址栏里获取所有属性.

  2.3  <jsp:getProperty>标签  

    <jsp:getProperty>标签用于读取JavaBean对象的属性,也就是调用JavaBean对象的getter方法,然后将读取的属性值转换成字符串后插入进输出的响应正文中。
  语法:
      <jsp:getProperty name="beanInstanceName" property="PropertyName" />
    name属性用于指定JavaBean实例对象的名称,其值应与<jsp:useBean>标签的id属性值相同。
    property属性用于指定JavaBean实例对象的属性名。
  如果一个JavaBean实例对象的某个属性的值为null,那么,使用<jsp:getProperty>标签输出该属性的结果将是一个内容为“null”的字符串。

1 <jsp:useBean id="my" class="jspprojec.Person" scope="request"></jsp:useBean>
2 <jsp:setProperty property="name" name="my" value="zhangsanfeng"/>
3 <jsp:getProperty property="name" name="my"/>

(二十六)JavaBean的更多相关文章

  1. Bootstrap <基础二十六>进度条

    Bootstrap 进度条.在本教程中,你将看到如何使用 Bootstrap 创建加载.重定向或动作状态的进度条. Bootstrap 进度条使用 CSS3 过渡和动画来获得该效果.Internet ...

  2. Web 前端开发人员和设计师必读精华文章【系列二十六】

    <Web 前端开发精华文章推荐>2014年第5期(总第26期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...

  3. 二十六:Struts2 和 spring整合

    二十六:Struts2 和 spring整合 将项目名称为day29_02_struts2Spring下的scr目录下的Struts.xml文件拷贝到新项目的scr目录下 在新项目的WebRoot-- ...

  4. 二十六、Jcreator使用初步

    摘自http://blog.csdn.net/liujun13579/article/details/7751464 二十六.Jcreator使用初步 Jcreator是一个小巧灵活的Java开发工具 ...

  5. WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[扩展篇]

    原文:WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[扩展篇] 通过<实现篇>对WSDL元素和终结点三要素的之间的匹配关系的介绍,我们知道了WSDL的Binding ...

  6. WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[实现篇]

    原文:WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[实现篇] 元数据的导出就是实现从ServiceEndpoint对象向MetadataSet对象转换的过程,在WCF元数据框 ...

  7. VMware vSphere 服务器虚拟化之二十六 桌面虚拟化之View Persona Management

    VMware vSphere 服务器虚拟化之二十六 桌面虚拟化之View Persona Management 实验失败告终,启动VMware View Persona Management服务报10 ...

  8. 第一百二十六节,JavaScript,XPath操作xml节点

    第一百二十六节,JavaScript,XPath操作xml节点 学习要点: 1.IE中的XPath 2.W3C中的XPath 3.XPath跨浏览器兼容 XPath是一种节点查找手段,对比之前使用标准 ...

  9. mysql进阶(二十六)MySQL 索引类型(初学者必看)

    mysql进阶(二十六)MySQL 索引类型(初学者必看)   索引是快速搜索的关键.MySQL 索引的建立对于 MySQL 的高效运行是很重要的.下面介绍几种常见的 MySQL 索引类型.   在数 ...

  10. JAVA之旅(二十六)——装饰设计模式,继承和装饰的区别,LineNumberReader,自定义LineNumberReader,字节流读取操作,I/O复制图片

    JAVA之旅(二十六)--装饰设计模式,继承和装饰的区别,LineNumberReader,自定义LineNumberReader,字节流读取操作,I/O复制图片 一.装饰设计模式 其实我们自定义re ...

随机推荐

  1. Java并发包线程池之Executors、ExecutorCompletionService工具类

    前言 前面介绍了Java并发包提供的三种线程池,它们用处各不相同,接下来介绍一些工具类,对这三种线程池的使用. Executors Executors是JDK1.5就开始存在是一个线程池工具类,它定义 ...

  2. Docs-.NET-C#-指南-语言参考-预处理器指令:#error(C# 参考)

    ylbtech-Docs-.NET-C#-指南-语言参考-预处理器指令:#error(C# 参考) 1.返回顶部 1. #error(C# 参考) 2015/07/20 #error 可从代码中的特定 ...

  3. JDK目录详解

    bin目录: 该目录用于存放一些可执行程序. 如javac.exe(java编译器).java.exe(java运行工具),jar.exe(打包工具)和* javadoc.exe(文档生成工具)等. ...

  4. osg ifc数据渲染着色器

    //顶点着色器 static const char* vertShader = { "varying vec4 color;\n" "void main(void)\n& ...

  5. 阶段5 3.微服务项目【学成在线】_day17 用户认证 Zuul_06-用户认证-认证服务查询数据库-Bcrypt介绍

    演示MD5加密的方式 数据库内的数据密码虽然都是6个1但是 每次加密出来的字符串是不一样的 加盐 测试BCrpty 循环10次加密 密码的校验 比人工的加盐要方便的多 这是创建的一个Spring的Be ...

  6. 使用Lock对象实现同步效果

    Lock是一个接口,为了使用一个Lock对象,需要用到   Lock lock = new ReentrantLock();   与 synchronized (someObject) 类似的,loc ...

  7. Jmeter响应断言--正则表达式判断纯数字

    如图所示,这样是匹配14位数字,如果响应是纯数字可以直接用上

  8. 反查BOM, 找出它的上阶

    转自:https://blog.csdn.net/zhongguomao/article/details/80172441 查询物料的上阶方法有三: 1. CS15  可直接查出物料的上阶直至顶阶物料 ...

  9. mysql导入、导出 ( 带视图)

    1创建账号授权 grant all privileges on jenkinsddbes.* to 'jenkinsddbes'@'%' identified by '1iN@Da12tA&* ...

  10. Ext.net中Combobox如何绑定数据库中的值

    ];      ];      " />       </Items> </ext:ComboBox>