现在的位置: 首页 > 综合 > 正文

JSP基础语法之十一:javaBean的使用

2013年11月06日 ⁄ 综合 ⁄ 共 1780字 ⁄ 字号 评论关闭


一:测试用Bean

将此测试Bean放置在 WEB-INF/classes/下

用CMD跳转到 E:  ,再编译它:javac -d . TestBean.java

package com.rt.demo.testBean;

public class TestBean 
{
	private String name;
	private int num;
	
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	
	
	
}

Bean要求至少包含一个无参构造,属性必须声明为private,属性都要求有配套的setter和getter

Bean编译之后的class文件要出现在WEB-INF/classes/对应的包下

修改Bean之后,一般情况下需要重启容器,有一种特列就是下边第三点所讲的reloadable设置

二:jsp中导入bean

<%@ page import="com.rt.demo.testBean.*"%>
    
    <%
    	TestBean tb = new TestBean();
    	tb.setName("rt");
    	tb.setNum(777); 
    %>
    <%=tb.getName()%><br>
    <%=tb.getNum()%>

或者用<jsp:useBean>标签,

    <jsp:useBean id="tb" scope="page" class="com.rt.demo.testBean.TestBean"/>
    <%
    	tb.setName("rt");
    	tb.setNum(777); 
    %>
    <%=tb.getName()%><br>
    <%=tb.getNum()%>

注意

id是通过反射生成的实例化对象的“名称”

class要引入:“ 包 . 类 ”

三:server.xml自动检查Bean更新配置

修改*a\apache-tomcat-6.0.30\conf\server.xml

在</Host>变迁结束之前添加

<Context path="/webDemo" docBase="E:\Java\Workspaces\MyEclipse 10\testWebProject\WebRoot" reloadable="true"/>

设置之后重启容器,

修改编译Bean之后,Tomcat的控制台出现:

....StandardContext reload

INFO:Reloading this Context has statted

证明Bean已经更新

reloadable消耗系统资源,在修改完成之后,应当再改成false

四:设置和取得属性

<jsp:useBean id="tb" scope="page" class="com.rt.demo.testBean.TestBean"/>
<!--1.提交来的表单和Bean自动匹配,提交来的表单中有名为name和num的项目-->
<jsp:setProperty name="tb" property="*" />
    
<!--或者2.指定二者参数名称 -->
<jsp:setProperty name="tb" property="Table_Name" param="Bean_Name"/>

<jsp:getProperty name="tb" property="name"/> 
<jsp:getProperty name="tb" property="num"/> 

五:javaBean服从四种属性作用范围

     <!-- javaBean也是一种Attribute,要符合四种属性的范围 -->
     <!-- 四种属性范围:page,request,session,application -->
     <jsp:useBean id="XXX" scope="page" class="com.rt.demo.testBean.XXX"/>
     
     pageContext.removeAttribute("JavaBean名称");
     request.removeAttribute("JavaBean名称");
     session.removeAttribute("JavaBean名称");
     application.removeAttribute("JavaBean名称");

抱歉!评论已关闭.