日期:2014-05-19  浏览次数:20688 次

JavaBean的一个疑惑
两个页面,一个bean,bean的代码如下:
package com.bean.www;

public class Person
{
private String username;
private String gender;
private int age;
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
public String getGender()
{
return gender;
}
public void setGender(String gender)
{
this.gender = gender;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
======================================
第一个beatTest1.jsp,主要代码如下:

 <jsp:useBean id="person" class="com.bean.www.Person" scope="request"/>
   
  <jsp:setProperty name="person" property="gender" value="male"/>
  <jsp:setProperty name="person" property="age" value="27"/>
<jsp:setProperty property="username" name="person" value="zhangsan"/>

  <jsp:getProperty property="username" name="person"/>
  <jsp:forward page="beanTest2.jsp"></jsp:forward>
======================================================
第二个jsp页面,beanTest2.jsp
<jsp:getProperty property="username" name="person"/> <!--出错-->

<!--下面这样写是OK的-->
  <%
  com.bean.www.Person p=(Person)request.getAttribute("person");
  %>
  <%=p.getUsername() %>
  <%=p.getAge() %>
  <%=p.getGender() %>
=====================
问题:
不能跨页面使用JavaBean标签??,我在第一个页面useBean,并设置了scope。在第二个页面就不能使用setProperty或者getProperty标签了???只能采用与scope对应的request.getAttribute???

------解决方案--------------------
可以取到的,不过不是直接用<jsp:getProperty>
还是要先用<jsp:useBean id="person" class="com.bean.www.Person" scope="request"/>
然后才用
<jsp:getProperty>