bean和Java的class文件其实是一样的,相当于一个私有类,一个是set,一个是get。(偶尔还有一个is来判断);
需要先写好java文件(需创建一个包放进包里),编译成功后把编译好的class文件方法相应的文件夹就可以使用了;
需要在相应的项目里创建一个classes文件夹,然后classes下面在新建一个相应的包名的文件夹,再把class文件copy进去。
那下面把bean存进去之后怎么使用呢?
先使用如下语句
<jsp:useBean id = "bean点名字(方便调用)" class = "创建bean的字节码(注意是字节码)" scope = "bean的有效使用范围"/>
或者
<jsp:useBean id = "bean点名字(方便调用)" class = "创建bean的类(注意是类)" scope = "bean的有效使用范围"></jsp:useBean >
然后就是id.get...(方法名)就可以调用这个bean啦
原理:先根据 id 和scope 来查找是否已经存在这样的bean,有的话直接调用。没有的话就根据指定的class文件来创建一个jsp动作标记useBean要求的bean。然后放进pagecontent中。
接下来我们讲讲它的另外一个属性scope:
有4个取值,分别是jsp的4个内置对象(page 、session、 request、application)
page : 仅在当前页面有效,页面执行完毕就销毁释放内存;
request:和page差不多,仅在当前页面有效,请求响应结束后销毁(比page长一点,因为页面执行完毕后才算响应结束)
session:相同web目录下都可以访问,会话结束销毁;
application : 和session差不多,但是application是由服务器创建的。服务器关闭销毁。
下面是获取和修改bean的属性:
设置有4种方法:
1、<jsp:setProperty name = "bean名" property = "要设置的属性" value = "传入的值"/>
3个都要一一对应,value一般传入字符串,会根据bean里的类型自动转换(或者一个表达式<%= value%>)
2、(结合request)<jps:setProperty name = "JavaBean实例名" property = "*"/> 一次把form里面的都传过去
因为表单传过去的都是字符串,所以只要传的键值(就是input的name属性)和bean的属性一一对应,就会传到相应的set方法里面,所以说方法的命名很重要(setUuuuu驼峰式);
3 、<jsp:setProperty name = "JavaBean实例名" property = "JavaBean属性名" />(要和form的name一样);
是上面的拆分版本
4、<jsp:setProperty name = "JavaBean实例名"
property = "propertyName" param = "request对象中的参数名"
/>
这个就是不要求 "JavaBean属性名" 要和form的name一样了,param指的是form的那么;
网友评论