浏览 2208 次
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-07-24
* 概念 从广义的角度讲,任何一个符合规范的Java类都可以称为JavaBean 从狭义角度讲,成为JavaBean的类需要满足三个条件: ● 共有的类,具有不带参数的共有构造方法(????) ● 属性私有化 ● 具有共有的访问属性的setter和getter方法 示例:User.java public class User { private String username; private String password; public User() { } public void setUsername(String username) { this.username = username; } public String getUsername() { return this.username; } public void setPassword(String password) { this.password = password; } public String getPassword() { return this.password; } } * 分类 从功能上分:封装数据,封装业务 2、标准动作 test.html <% String username = request.getParameter("txtUserName"); String password = request.getParameter("txtPassWord"); User user = new User(); request.setAttribute("user", user); user.setUsername(username); user.setPassword(password); %> username: <%=user.getUsername() %><br /> password: <%=user.getPassword() %> * 作用:以前在jsp中使用JavaBean的时候,需要使用Java脚本。这样在jsp页面中,不仅有大量的HTML标签,还有 很多Java代码,不便于页面的维护和可扩展。而使用标准动作操作JavaBean可以提供无脚本环境。 * 语法:<jsp:动作名 属性1="值1" 属性2="值2" ...></jsp:动作名> * 分类 与JavaBean有关的:useBean, setProperty, getProperty 与流程有关的:forward, include, param * useBean: ● 作用:创建JavaBean的实例 ● 语法:<jsp:useBean id="name" class="package.class" scope="page|request|session|application" /> id:用于指定创建的JavaBean实例的名字 class:指定要创建其实例的JavaBean的全限定名(包名.类名) scope:指定创建的JavaBean实例保存的范围,可以是page, request, session, application,默认情况下是page ● 例子:<jsp:useBean id="user" class="com.westaccp.store.User" scope="request" /> 等价于:User user = new User(); request.setAttribute("user", user); * setProperty ● 作用:为JavaBean的指定属性设置值 ● 语法: <jsp:setProperty name="BeanName" property="PropertyName" value="value" param="Parameter" /> ● 例子: <jsp:setProperty name="user" property="username" value="zhangsan" /> <jsp:setProperty name="user" property="username" param="txtUserName" /> <jsp:setProperty name="user" property="*" /> ● 注意:param的属性值必须跟表单元素的名字一致 在使用property="*"的时候,表单元素的名字要跟JavaBean中的属性名称一致,这样才会将表单元素的值设置到 JavaBean对应的的属性上。 在setProperty中value和param不能同时使用 * getProperty ● 作用:获取JavaBean的指定属性的值 ● 语法: <jsp:getProperty name="BeanName" property="PropertyName" /> ● 例子: <jsp:getProperty name="user" property="username" /> userBean, setProperty, getProperty实质: userBean:通过反射创建JavaBean的实例 setProperty:通过反射调用属性的set方法 getProperty:通过反射调用属性的get方法 关于JavaBean规范的说明 a)Class classType = Class.forName("com.westaccp.store.User"); classType.newInstance(); 在写JavaBean的时候,如果提供了带参的构造方法,那么必须手工提供一个共有的无参构造方法 如果没有提供带参的构造方法,Java虚拟机会自动提供一个无参构造方法,此时就可以不再手工提供无参构造方法。 b)什么是JavaBean的属性? 是get方法或者get方法后面的字符串 setUsername()-->username setName()-->name getUsername()-->username getName()-->name useBean中scope的说明 * forward ● 作用:内部跳转,请求转发,作用同request.getRequestDispatcher("url").forward(request, response); ● 语法:<jsp:forward page=url"" /> ● 例子: <jsp:forward page="login_success.jsp" /> <jsp:forward page="test.jsp"> <jsp:param name="id" value="u001" /> <jsp:forward> * include ● 作用:包含其他页面到当前页面中 ● 语法:<jsp:include page="url" /> ● 例子:<jsp:include page="top.jsp" /> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |