`jsp:useBean`

<jsp:useBean>标签用于在指定的域范围内查找指定名称的JavaBean工具:存在则直接返回该JavaBean工具的引用。
不存在则实例化一个新的JavaBean工具并将它以指定的名称存储到指定的域范围中。
语法:

<jsp:useBean id=\"大众实例化工具的名称\"大众 class=\公众类的全名\"大众 scope=\"大众保存范围\公众/>如果JSP不支持这个行为,我们要利用Person类是这样利用的

<%--这里须要导入Person类--%><%@ page import=\公众domain.Person\"大众 %><%@ page contentType=\"大众text/html;charset=UTF-8\公众 language=\"大众java\公众 %><html><head> <title></title></head><body><% //new出工具 Person person = new Person(); person.setName(\公众zhongfucheng\公众); System.out.println(person.getName());%></body></html>效果如下

我们利用就显得非常简洁,不用导包,不用new出工具

<%@ page contentType=\"大众text/html;charset=UTF-8\公众 language=\公众java\公众 %><html><head> <title></title></head><body><jsp:useBean id=\"大众person\"大众 class=\"大众domain.Person\"大众 scope=\公众page\公众/><% person.setName(\"大众zhongfucheng\"大众); System.out.println(person.getName());%></body></html>也可以实现同样的效果:

jsp中javabean异常JSP第三篇JavaBean的介绍JSP的行动JavaBean修订版 React

有人可能会想,凭什么写一个``这样的代码就可以创建出一个工具出来。
现在我把JavaBean中无参的布局函数改成有参的,我们看看会涌现什么情形,涌现非常了!

public Person(int age) { this.age = age; }

内部事理是这样子的:

通过上面的代码我们也知道了为什么要有一个无参的布局函数!
内部在new 工具的时候是没有通报参数进去的!

`jsp:setProperty`

语法:

<jsp:setProerty name=\"大众工具名称\公众 property=\"大众属性名\"大众 param=\"大众参数名\"大众 value=\公众值\"大众>

在语法上可分为4种模式自动匹配指定属性指定参数【很少用】指定内容【很少用】当我们没有学习到<jsp:setProperty>时,我们获取表单的信息,然后导入到javaBean工具中是这样的一种情形:这是表单的页面代码:

<form action=\公众/zhongfucheng/1.jsp\"大众 method=\"大众post\"大众> 用户名:<input type=\"大众text\"大众 name=\"大众username\"大众> 年事:<input type=\公众text \公众 name=\"大众age\"大众> <input type=\"大众submit\"大众 value=\"大众提交\"大众></form>这是处理表单提交过来数据的jsp的代码

<jsp:useBean id=\"大众person\"大众 class=\公众domain.Person\"大众 scope=\公众page\公众/><% int age = Integer.parseInt(request.getParameter(\"大众age\"大众)); person.setAge(age); System.out.println(person.getAge());%>这是可以完成的,但是相对来说,比较麻烦!

我们来利用了来看看:

<jsp:useBean id=\"大众person\"大众 class=\"大众domain.Person\公众 scope=\公众page\"大众/><%--指定属性名称为age--%><jsp:setProperty name=\公众person\"大众 property=\公众age\"大众/><% System.out.println(person.getAge());%>也可以完成,并且代码更少,功能更强大!

代码更少可以直不雅观看出来,为什么我说它功能更加强大呢?表单提交过来的数据都是字符串,在我们没有用前,我们存储设置int类型或其他非字符串类型的数据是须要强转的!
但是不须要我们强转,它内部自动帮我们转换了!
我们再来利用一下自动匹配来感想熏染它的强大之处吧

<jsp:useBean id=\"大众person\公众 class=\"大众domain.Person\"大众 scope=\"大众page\"大众/><%--property的值设置为就代表自动匹配--%><jsp:setProperty name=\公众person\"大众 property=\公众\"大众/><% System.out.println(person.getAge()); System.out.println(person.getName());%>我们再来看一下效果:

看到这里,有人可能会以为好神奇:只要设置property的值就可以将表单通报过来的数据封装到JavaBean工具中了!
这究竟是这样做到的???细心的朋友会创造,JavaBean的属性名称和表单的name属性设置的名称是千篇一律的!

private String username ;private int age;用户名:<input type=\"大众text\"大众 name=\公众username\公众>年事:<input type=\"大众text \公众 name=\"大众age\"大众>如果我设置不一样还能不能用?我们试试:表单name属性的username改成是user

用户名:<input type=\公众text\公众 name=\"大众user\"大众>我们再来看看还能不能把表单的数据完全地封装JavaBean工具中

我们可以创造:要想能够把表单带过来的数据成功封装到JavaBean工具上,名字要同等!
也便是说:JavaBean属性名要和表单的name的名称同等至于事理,它是通过反射来做的,调用了自察的方法!
,我们看编译后的JSP就明白了。

jsp:getProperty

语法::<jsp:getProperty name=\公众工具名\"大众 property=\公众属性名\公众/>该jsp行为十分大略,我们来利用一下就知道了。

<%--利用<jsp:getProperty>输出--%><jsp:getProperty name=\"大众person\公众 property=\公众username\"大众/><jsp:getProperty name=\公众person\"大众 property=\"大众age\"大众/>效果:

事理如下

原文链接:https://dwz.cn/kfJIwxxt

作者:Java3y