看似简单,就是一个类的使用,但是使用的时候问题一大堆。
1、bean包的使用
在定义bean的java文件开头有package ***;的字样。但是具体在哪呢?如果弄不清这个问题,将无法找到合适的bean类。
首先是这个类应该放在WEB-INF/classes下面(千万别把WEB-INF创建成了WEB_INF),然后就可以创建包了,其实就是一个文件夹,然后根据package 使用的包定义文件夹名。如:package bean,这句话的意思就是在classes文件夹下创建bean文件夹,然后把javabean(其实就是这个类)编译好后放到这个文件夹里。这样服务器就可以找到根据包名找到javabean了。
2、我收集到了传过来的request,怎么将request中的参数添加到bean里?
<%= %> 代表输出,我试试了不行啊?
该怎么赋值呢?
比如:
假设传过来了name的值,
<jsp:setProperty name= "test" property="name" value=<%=name%> />
这句话是通不过的。
正确的赋值语句是<jsp:setProperty name= "test" property="name" value=“<%=name%>“ />
3、写<jsp>指令时,要注意写结尾符/
OK,注意事项就是这样。
我们来回顾下怎么使用javabean。
1、首先我们定义了javabean.
2、然后就是在需要引用的页面里把这个javabean引进来,
3、当我们使用<jsp:useBean id="test" class="Test">的时候,实际上就是创建了一个bean实例,相当于: Test test=new Test();
4、使用setProperty和getProperty相当于调用了test.setXXX()和test.getXXX(),这样就可以理解为什么它们会有name属性了,实际name属性就是去指向创建的bean实例
实例:
student.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<html>
<head>
<title>学生注册</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<form name="login" action="registerStudent.jsp" method="post">
<table>
<tr>
<td>
姓名:
</td>
<td>
<input type="text" name="username">
</td>
</tr>
<tr>
<td>地址:</td>
<td><input type="text" name="address"></td>
</tr>
<tr>
<td>电话:</td>
<td><input type="text" name="phone"></td>
</tr>
<tr>
<td><input type="submit" name="submit" value="确定"></td>
</tr>
</table>
</form>
</body>
</html>
registerStudent.jsp
<%@ page import="java.util.*" import="bean.StudentBean" contentType="text/html;charset=UTF-8"%>
<html>
<title>注册成功</title>
<body>
注册成功页面<br>
<%
String name = request.getParameter("username");
String address = request.getParameter("address");
String phone = request.getParameter("phone");
%>
<jsp:useBean id="student" class="bean.StudentBean" />
<jsp:setProperty name="student" property="name" value= "<%= name%>" />
<jsp:setProperty name="student" property="address" value="<%=address%>" />
<jsp:setProperty name="student" property="phone" value="<%=phone%>" />
姓名:<jsp:getProperty name="student" property="name" />
<br>
地址:<jsp:getProperty name="student" property="address" />
<br>
电话:<jsp:getProperty name="student" property="phone" />
<%--
<jsp:useBean id="test" class="bean.SimpleBean" />
<jsp:setProperty name="test" property="message" value="Hello Reader" />
<jsp:getProperty name="test" property="message" />
--%>
</body>
</html>
SutentBean.java
package bean;
public class StudentBean{
private String name ;
private String address;
private String phone;
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void setAddress(String address){
this.address = address;
}
public String getAddress(){
return this.address;
}
public void setPhone(String phone){
this.phone = phone;
}
public String getPhone(){
return this.phone;
}
public StudentBean(){
this.name="user";
this.address="address";
this.phone="phone";
}
}