JSP的Java Bean学习总结

使用

预先创建Person

1
2
3
4
5
public class Person(){
string name;
int age;
//get方法、set方法、构造方法
}

普通方式使用

并在JSP中使用,就像Java程序一样

1
2
3
4
5
6
7
8
<@page import="包名.Person"><%--先导包--%>
<html><head><%--省略--%></head>
<body>
<%
Person p1 = new Person("小明",12);
out.println("姓名:"+p1.getName()+",年龄:"+p1.getAge());
%>
</body></html>

通过JSP动作标签使用

使用<jsp:useBean>声明,<jsp:setProperty>设置属性,使用<jsp:getProperty>获取属性
并且不用<@page import="">导包

首先新建个submit.jsp页面,写一个form表单

1
2
3
4
5
6
7
8
9
<html><head><%--省略--%></head>
<body>
<form name="submitForm" action="doSubmit.jsp" method="post">
<input type="text" name="name"/><br/>
<input type="text" name="age"/><br/>
<input type="submit" value="提交"/>
</form>
</body>
</html>

然后在doSubmit.jsp页面中获取form中传递的数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<html><head><%--省略--%></head>
<body>
<jsp:useBean id="p2" class="包名.Person" scope="作用范围" /><%--相当于Person p2 = new Person();--%>
<%--scope默认值是page,可选page、request、session、application--%>

<jsp:setProperty name="p2" property="*" /><%--第一种方法--%>
<%--通配符*会自动将form中的name和JavaBean中的属性自动配对--%>
<jsp:getProperty name="p2" property="name" /><%--相当于p2.getName()--%>
<jsp:getProperty name="p2" property="age" /><%--相当于p2.getAge()--%>

<jsp:setProperty name="p2" property="name" /><%--第二种方法--%>
<jsp:setProperty name="p2" property="age" /><%--将form中的name和JavaBean中的属性自动配对--%>
<jsp:getProperty name="p2" property="name" /><%--相当于p2.getName()--%>
<jsp:getProperty name="p2" property="age" /><%--相当于p2.getAge()--%>

<jsp:setProperty name="p2" property="name" value="小红" /><%--第三种方法--%>
<jsp:setProperty name="p2" property="age" value="10" /><%--手动设置属性--%>
<jsp:getProperty name="p2" property="name" /><%--相当于p2.getName()--%>
<jsp:getProperty name="p2" property="age" /><%--相当于p2.getAge()--%>

<jsp:setProperty name="p2" property="name" param="name" /><%--第四种方法--%>
<jsp:setProperty name="p2" property="age" param="age"/><%--通过request获取传递参数--%>
<jsp:getProperty name="p2" property="name" /><%--相当于p2.getName()--%>
<jsp:getProperty name="p2" property="age" /><%--相当于p2.getAge()--%>
</body></html>

总结

使用普通方式和Java程序一样。

使用jsp:setProperty标签

  1. 运用通配符*实现完全匹配,表单formname属性名、JavaBean的属性名要完全一致。
  2. 运用通配符*实现部分匹配,表单formname属性名、JavaBean的属性名、jsp:setPropertyproperty属性值要完全一致。
  3. 手动设置,和表单form无关,和普通方式使用情景一样。
  4. request中获取,param的属性值只要和request的属性值一致即可,不用和JavaBean的属性值保持一致,无论getpost都可以。