`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>也可以实现同样的效果:
有人可能会想,凭什么写一个``这样的代码就可以创建出一个工具出来。现在我把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());%>也可以完成,并且代码更少,功能更强大!
但是不须要我们强转,它内部自动帮我们转换了!
我们再来利用一下自动匹配来感想熏染它的强大之处吧
<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