看似简单,就是一个类的使用,但是使用的时候问题一大堆。
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";
- }
- }