Jsp中JavaBean的用法

首先我们有两种方式可以引入JavaBean:

第一种,在jsp文件头部引入包或者类:


第二种,是在<body>标签里面使用<jsp:useBean />来引入:


id相当于对象,直接可以调用方法,这里是使用java的反射原理去实例化的对象(根据完整包.类名去实例化对象),后面的设置属性也是通过反射原理去设置属性(根据属性名去找到相关的setter方法),那么属性名是从哪来的呢?属性名就是form表单提交的input标签的name属性值:


property属性为“*”表示自动根据form的input标签的name属性的值匹配,因为定义的Person类里面有setName()和setAge()方法,所以才会自动匹配上,注意是set后面的值和name属性值一致,而不是Person里面的变量,这里的变量是mName和mAge,很明显不一致。如果找不到一致的那么就会出现null或者0。


<jsp:setProperty />标签的name属性必须和需要赋值的useBean标签的id属性值一致。

property除了可以是“*”自动赋值之外,还可以指定要赋值的属性,比如property=“name”,这样只会给name复制,而得到的age属性的值会是0;

还可以指定param属性,比如property=“name” param=“age”,他会根据“name”去寻找相关的setter方法,然后把form表单中input标签的name属性值为“age”的输入数据赋过去,这样mName变量的值就会变成输入的age的值。

还有一种是直接指定变量值,property=“name” value=“我是谁”。


当然,有set属性就有get属性,<jsp:getProperty />标签就是利用反射找到getter方法来获取属性值的:



可以看到,<jsp:useBean />有个scope属性,它的值同样有page、request、session、application四种,表示JavaBean的四种属性范围,分别代表着本页有效、一次服务器端请求(服务器端跳转)有效、未关闭浏览器有效、未重启服务器有效。


如何删除JavaBean?

使用pageContext.removeAttribute(JavaBean名称)、request.removeAttribute(JavaBean名称)、session.removeAttribute(JavaBean名称)、application.removeAttribute(JavaBean名称)分别删除不同属性范围内的JavaBean。

注意,即使是重复使用,也要重新声明<jsp:useBean/>标签,同一个id,同样的scope和class,只不过这个对象的值被保存了下来。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值