JavaBean 怎么用?

什么是 JavaBean

JavaBean 是使用 java 代码开发的一个重复组件,jsp 开发中,可以使用 JavaBean 减少 jsp 中 Java 代码量。用于解耦合,提高程序的可读性和可维护性,jsp 配合 JavaBean 使用,有如下优势:

  • 可以将HTML代码和JAVA代码分开

  • 可以使用JavaBean的优势,开发一个组件,以便重复使用

JavaBean 的要求

  • JavaBean 本身是一个类,属于Java面向对象的编程
  • 所有的JavaBean必须放在一个包中
  • 所有的JavaBean都必须都必须使用public class 声明
  • JavaBean中所有的属性,都必须封装,然后提供getter和setter方法
  • JavaBean中至少要存在一个无参数构造器

实例:

public class UserInfo {
	private String userName;
	private String passWord;
	private String email;;
	private Integer age;
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getPassWord() {
		return passWord;
	}
	public void setPassWord(String passWord) {
		this.passWord = passWord;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public UserInfo(String userName, String passWord, String email, Integer age) {
		super();
		this.userName = userName;
		this.passWord = passWord;
		this.email = email;
		this.age = age;
	}
	public UserInfo() {
		super();
		// TODO Auto-generated constructor stub
	}
}

JavaBean 使用方式

  • 使用 scriptlet 形式调用 JavaBean
	<%
		UserInfo userInfo = new UserInfo();
		userInfo.setUserName("jjm");
		userInfo.setPassWord("jjm123");
		userInfo.setEmail("jjm_ff@163.com");
		userInfo.setAge(30);
	%>
	<h1><%= userInfo.getUserName() %></h1>
	<h1><%= userInfo.getPassWord() %></h1>
	<h1><%= userInfo.getEmail() %></h1>
	<h1><%= userInfo.getAge() %></h1>
  • 使用 jsp 标签
<jsp:useBean id="userInfo" class="com.wanbang.entities.UserInfo" scope="page"></jsp:useBean>
	<%
		userInfo.setUserName("jjm");
		userInfo.setPassWord("jjm123");
		userInfo.setEmail("jjm_ff@163.com");
		userInfo.setAge(30);
	%>
	<h1><%= userInfo.getUserName() %></h1>
	<h1><%= userInfo.getPassWord() %></h1>
	<h1><%= userInfo.getEmail() %></h1>
	<h1><%= userInfo.getAge() %></h1>

其中,<jsp:useBean></jsp:useBean> 是 jsp 使用 JavaBean 的语法。其中包含几个参数。

  • id : bean 的名称,也就对象的名称
  • class : JavaBean 类的全类名
  • scope : 域范围

范例:使用 JavaBean 接受参数。

我们的 demo01.jsp 主要内容可以这样写

<form action="demo02.jsp" method="post">
		
		USERNAME : <input type="text" name="userName">
		<br>
		PASSWORD : <input type="password" name="passWord">
		<br>
		EMAIL : <input type="text" name="email">
		<br>
		AGE : <input type="text" name="age">
		<br>
		<button>提交</button>
	</form>

demo02.jsp 可以这样写

<jsp:useBean id="userInfo" class="com.wanbang.entities.UserInfo" scope="page"></jsp:useBean>
	<jsp:setProperty property="*" name="userInfo"/>
	<h1><%= userInfo.getUserName() %></h1>
	<h1><%= userInfo.getPassWord() %></h1>
	<h1><%= userInfo.getEmail() %></h1>
	<h1><%= userInfo.getAge() %></h1>

其中 <jsp:setProperty property="" name=""/> 是我们用来设置快速为 JavaBean 对象匹配参数使用的标签。其中:

  • property
    • 设置属性名称,* 表示自动匹配属性名和参数名
    • 注意:参数名称会和 JavaBean 风格的属性名向匹配,即 setter 方法对应的属性名要与我们控件 name 属性名称对应。比如我这里 username 对应的 setUserName() 方法,需要和 控件上的 name 属性名对齐,set 这个不用添加上去。并且除了第一个字符必须是方法名,第一个字符的小写,后面的字符,需要与方法名一致。
  • name
    • 要设置属性的对象,也就是 <jsp:useBean></jsp:useBean> 中对应的 Id 名。

这里不止这样写,还有其他几种。比如:

  • 属性名和参数名自动匹配
    • <jsp:setProperty property="*" name="userInfo"/>
  • 属性匹配参数
    • <jsp:setProperty property="age" name="userInfo"/>
  • 属性匹配指定参数
    • <jsp:setProperty property="userName" param="email" name="userInfo"/>
  • 指定属性的属性值
    • <jsp:setProperty property="age" value="10" name="userInfo"/>

scope 参数

可以指定参数,让 JavaBean 的范围扩展到其他域,例如 page 域, Session 域等,一共四个值:

  • page
  • request
  • session
  • application

这里就不多介绍了。

这里我们也可以通过域对象的方法 removeAttribute(“对象名/JavaBean ID”) 来删除。例如:

	<%
		request.removeAttribute("userInfo");
	%>	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值