usebean java_JSP---JavaBean的使用-jsp:useBean标签相关

JavaBean介绍:

JavaBean其实就是一个遵循特定写法的java类,但是必须具有如下特点:

1.这个java类必须具有一个公开的无参构造函数

2.属性必须私有化,类必须公开

3.私有化的属性必须通过public类型的方法暴露给其他程序,并且方法的命名也必须遵守一定的命名规范---getXxx和setXxx方法。

定义:

把一个拥有对属性进行set和get方法的类,我们就可以称之为JavaBean。实际上JavaBean就是一个java类,在这个java类中就默认形成了一种规则——对属性进行设置和获得。而反之将说ava类就是一个JavaBean,这种说法是错误的,因为一个java类中不一定有对属性的设置和获得的方法(也就是不一定有set和get方法)。

在JSP中访问JavaBean的语法:

1、声明JavaBean对像-必须使用完整类名:

以上声明相当于:

SomeBean someBean = new SomeBean();

pageContext.setAttribute(“someBean”,someBean);

scope的可选值为:page|request|session|application

需要说明的是:一般情况下,我们保留的body部分为空,如果不为空,则只有初始化此Bean时执行,如:

这是body部分,只会在初始化时执行一次

2、访问JavaBean的属性:

也可以在页面上使用Java代码直接访问它的属性和其他方法。

标记:

id:代表jsp页面中的实例对象 通过这个对象引用类中的成员,如,id="wq", wq.成员();

class: 代表JavaBean类,如: class="com.Test",引用com包中的Test类

scope:指明了javabean的生存时间

JavaBean的范围:

JavaBean的scope属性决定的Bean的范围,默认为page范围。

当声明了一个Bean并将它放到某个范畴之后,在同一个范围内再次使用将不再创建。而是直接给你返回已经创建过的Bean的实例。此过程可以通过查看容器翻译的源代码得知。

演示属性名是基本数据类型时的jsp:useBean用法:

User.java:

package cn.hncu.regServletPojo.domain;

public class User {

private String name;

private Integer age;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

@Override

public String toString() {

return "User [name=" + name + ", age=" + age + "]";

}

}

javaBean.jsp:

package cn.hncu.regServletPojo.domain;

public class User {

private String name;

private Integer age;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

@Override

public String toString() {

return "User [name=" + name + ", age=" + age + "]";

}

}

doBeanForm.jsp:

request.setCharacterEncoding("utf-8");

%>

${user3}

${user4}

演示属性名与setter-getter方法比较特殊时的jsp:useBean用法:

Person.java:

package cn.hncu.bean;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

/**

*@author 陈浩翔

*

* 2016-7-30

*/

public class Person {

private String name;

private Integer age;//最好用Integer对象,而不用int

private Date birth;

//特殊的属性(这个变量的类型不是基本数据类型时,标记无法直接使用!)

//解决方案:不写它自己默认的setter-getter--setBirth(Date)

//而是写一对替代该属性的setter-getter ---setBirthday(String)方法

//另外,在页面使用时,属性名应该用替代setter-getter 方法反推出的属性名-这里要用---birthday

//开始我想着用重载做,其实重载也是可以实现这个一样的功能,不过注意哦,返回类型不能重载的!所以get方法是肯定不行的,综合,还是上面那个方法好。

public Person() {

super();

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

/*

//我们要做的就是改这个2个方法

public Date getBirth() {

return birth;

}

public void setBirth(Date birth) {

this.birth = birth;

}

*/

//注入日期格式

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

public String getBirthday(){

return sdf.format(birth);

}

public void setBirthday(String strDate){

try {

Date birth = sdf.parse(strDate);

this.birth=birth;

} catch (ParseException e) {

throw new RuntimeException("日期格式错误", e);

}

}

@Override

public String toString() {

return "Person [name=" + name + ", age=" + age + ", birth=" + birth

+ "]";

}

}

javaBean.jsp:增加代码

演示结果:

12ca709ffa7f7de69a800cc479cc8cfb.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值