JAVA入门[12]-JavaBean
一.什么是JavaBean
JavaBean是特殊的Java类,使用Java语言书写,并且遵守规范:
- 提供一个默认的无参构造函数。
- 需要被序列化并且实现了Serializable接口。
- 可能有一系列可读写属性。
- 可能有一系列的"getter"或"setter"方法。
二.定义JavaBean
package com.cathy.domain;
public class Category implements java.io.Serializable{
public Category(){}
private int cateId;
private String cateName;
public int getCateId() {
return cateId;
}
public void setCateId(int cateId) {
this.cateId = cateId;
}
public String getCateName() {
return cateName;
}
public void setCateName(String cateName) {
this.cateName = cateName;
}
}
三、访问JavaBean
1. <jsp:useBean> 标签可以在JSP中声明一个JavaBean,语法格式如下:
<jsp:useBean id="bean 的名字" scope="bean 的作用域" />
其中scope的值可以是page,request,session或application
2.设置和获取JavaBean属性
在 <jsp:useBean> 标签主体中使用 <jsp:getProperty/> 标签来调用 getter 方法获取属性,使用 <jsp:setProperty/> 标签调用 setter 方法设置属性。语法格式:
<jsp:useBean id="id" class="bean 类" scope="bean 作用域"> <jsp:setProperty name="bean 的 id" property="属性名"
value="value"/>
<jsp:getProperty name="bean 的 id" property="属性名"/>
........... </jsp:useBean>
其中name属性指的是Bean的id属性,property属性指的是想要调用的getter或setter方法
四、示例
1.示例:在当前jsp页面设置和获取javabean属性
<jsp:useBean id="category" class="com.cathy.domain.Category">
<jsp:setProperty name="category" property="cateId" value="2"></jsp:setProperty>
<jsp:setProperty name="category" property="cateName" value="女装"></jsp:setProperty>
</jsp:useBean>
<div>
id:<jsp:getProperty name="category" property="cateId"></jsp:getProperty>
</div>
<div>
name:<jsp:getProperty name="category" property="cateName"></jsp:getProperty>
</div>
2.示例:在edit.jsp 页面form表单提交信息,在detail.jsp页面中显示。
edit.jsp
<form action="/category/detail" method="post">
商品id:<input type="number" name="cateId">
商品名称:<input type="text" name="cateName">
<input type="submit" value="提交">
</form>
detail.jsp
如果表单中的属性名称和JavaBean中属性对应,那么可以简化jsp:setProperty写法,直接property="*"
<jsp:useBean id="category" class="com.cathy.domain.Category">
<jsp:setProperty name="category" property="*"></jsp:setProperty>
</jsp:useBean>
<table>
<tr>
<td>id:</td><td><jsp:getProperty name="category" property="cateId"></jsp:getProperty></td>
</tr>
<tr><td>名称:</td><td><jsp:getProperty name="category" property="cateName"></jsp:getProperty></td></tr>
</table>
问题:通过表单提交中文数据时遇到乱码问题:
<%request.setCharacterEncoding("UTF-8");%>
效果:


3.示例:JavaBean实现访问计数
首先创建计数JavaBean:
public class Counter {
private int total=0;
public int getTotal() {
return total++;
}
}
在index.jsp和edit.jsp文件中调用该JavaBean,注意将scope设置为application。
<jsp:useBean id="counter" class="com.cathy.domain.Counter" scope="application"></jsp:useBean>
<div>
访问计数:<jsp:getProperty name="counter" property="total"></jsp:getProperty>
</div>
刷新这两个页面时,都能实现计数器累加。
JAVA入门[12]-JavaBean的更多相关文章
- JAVA入门--目录
在此记录自己的JAVA入门笔记,备忘 JAVA入门[1]--安装JDK JAVA入门[2]-安装Maven JAVA入门[3]—Spring依赖注入 JAVA入门[4]-IntelliJ IDEA配置 ...
- 032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例——闰年问题
032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例--闰年问题 本文知识点:运算符和if-else条件语句的综合案例 ...
- [Java入门笔记] 面向对象编程基础(二):方法详解
什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...
- Java入门记(五):容器关系的梳理(下)——Map
注意:阅读本文及相关源码时,需要数据结构相关知识,包括:哈希表.链表.红黑树. Map是将键(key)映射到值(value)的对象.不同的映射不能包含相同的键:每个键最多只能映射到一个值.下图是常见M ...
- Android初涉及之Android Studio&JAVA入门--二月不能不写东西
是的,我还没有放弃写博客. 是的,我也没有放弃PHP的学习. 是的,我要开始学学最TM火的Android开发了. 你呢 1.Android Studio 一.概况 安装和配置什么的就不具体说了,网上一 ...
- Java入门教程总目录
Java入门教程总目录 持续更新中... 1.Java常识汇总 2.Java框架对比 3.Java技术路线 4.Java编码规范 5.Java环境变量配置 6.枚举 7.操作符 12.定时任务
- Java入门的程序汇总
Java入门的基础程序,虽然很简单,也要多练习,下面有重点的总结一下 1.HelloWorld这个不说了 2.常量与变量部分 基本数据类型使用 public class Javashujuleixin ...
- JAVA入门第一季(mooc-笔记)
笔记相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第一季 ...
- JAVA入门[9]-mybatis多表关联查询
概要 本节要实现的是多表关联查询的简单demo.场景是根据id查询某商品分类信息,并展示该分类下的商品列表. 一.Mysql测试数据 新建表Category(商品分类)和Product(商品),并插入 ...
随机推荐
- Cordova使用build命令出错: Could not create the Java Virtual Machine.
这是因为虚拟机内存不足导致的,解决方案如下: _JAVA_OPTIONS=-Xmx512M
- 几种常用的ajax 跨域请求
前 言 首先,我们要明白,什么是跨域,为什么要跨域. 由于JS中存在同源策略.当请求不同协议名不同端口号下面的文件时,将会违背同源策略,无法请求成功!需要进行跨域处理! 这篇文章就为大家详细介绍一 ...
- Java微信公众平台开发_06_素材管理
一.本节要点 1.官方文档的media 这个media可以理解为文件,即我们需要以POST方式提交一个文件 2.媒体文件有效期 媒体文件在微信后台保存时间为3天,即3天后media_id失效. 二.代 ...
- Oracle与Sql server的区别
一直搞不明白Oracle数据库和sql server的区别,今天我特意查资料把他们的区别整理出来 Oracle数据库:Oracle Database,又名Oracle RDBMS,或简称Oracle. ...
- MVC 页面静态化
最近工作需要,实现页面静态化,以前在ASP时代,都是FSO自己手动生成的. 新时代,MVC了,当然也要新技术,网上一搜,找到一种解决方案,是基于MVC3的,实现原理是通过mvc提供的过滤器扩展点实现页 ...
- 插件lombok的介绍安装
Lombok插件 介绍一个不错的Eclipse插件Lombok 该插件对Log4j简化的代码,因为不大,所以jar包也存在呢! Lombox是Eclipse的一个插件,用来自动生成Java代码,减少手 ...
- mysql多个TimeStamp设置(转)
原文地址:http://www.cnblogs.com/yjf512/archive/2012/11/02/2751058.html timestamp设置默认值是Default CURRENT_TI ...
- 给GridControl中的某列添加图片
要让GridControl的某列显示图片只需要数据源中有图片就可以正确显示 1.给DataSet添加一列,格式为image ds.Tables[].Columns.Add("SIGN&quo ...
- Nginx+Tomcat+Redis实现持久会话
使用开源web应用solo blog进行项目演示.前端使用Nginx作为负载均衡器,后端Tomcat连接Redis实现session存储.Redis的特点就是可以将session持久化.样才能真正实现 ...
- SparkStreaming动态读取配置文件
SparkStreaming动态读取配置文件 标签: SparkStreaming HDFS 配置文件 MySql 需求 要实现SparkStreaming在流处理过程中能动态的获取到配置文件的改变 ...