jsp:useBean标准动作

1.bean法则

  JavaBean和企业JavaBean是完全不相干的两个东西。普通的非企业JavaBean需要满足一定的规范才能被JSP和servlet使用:

1)必须有一个无参数的公共构造函数;

2)必须按命名约定来命名公共的获取方法和设置方法;

3)设置方法的参数类型和获取方法的返回类型必须一样;

4)性质名和类型是由获取方法和设置方法得出,而不是得自于类的一个成员;

5)结合JSP使用时,性质类型必须是String或者其他基本类型,否则还是要使用脚本;

2.为什么使用标准动作

  通过使用标准动作,可以消除JSP中的所有脚本代码,标准动作会使JSP更简单。

  例如在servlet中设置了一个person属性:

  使用bean标准动作对web页面设计人员的意义比对java程序员的意义更重大,他们不需要了解底层的只是,可以把bean想成是包含字段的记录,而且使用标准动作比使用脚本更容易维护。

3.<jsp:useBean>用法

声明和初始化一个bean属性

如果使用<jsp:useBean>在scope中找不到属性对象,它就会创建一个,scope默认为page。

设置bean的属性值

  如果把<jsp:setProperty>放在<jsp:useBean>的体中,只有在创建新bean时才会设置属性值。如果发现对于制定的scope和id已经有一个bean,就不会运行体中的set方法重置这个属性。

得到bean的属性值

bean的多态引用

  可以使用<jsp:useBean>建立多态的bean引用,其中type指定引用类型,class为对象类型。如果使用了type,但没有class,bean必须已经存在,否则,即使type设置为具体的对象类型,容器还是假定只有引用类型,没有对象类型,会报错无法初始化person对象。

                                       

向bean发送请求参数

可以使用<jsp:setProperty>的param属性向bean发送请求参数,设置bean的属性,只需指定请求参数

还可以这样

如果请求参数名与bean属性名匹配,就不需要在<jsp:setProperty>标记中为该性质指定值

甚至还可以这样

  bean标记会自动转换基本类型的性质,不用自己来完成解析和转换。但是如果使用脚本,bean不会完成String 到基本类型的转换:

原文地址:https://www.cnblogs.com/juaner767/p/5503096.html