日期:2014-05-16  浏览次数:20429 次

在JSP中使用JavaBean时出现的问题
  今天在学习JSP中使用JavaBean,结果出现了一个解决不了的问题。现贴上JavaBean与JSP源码,希望大家讨论。
<!--TestBean.java-->
package test;
public class TestBean
{
  private String name = null;

  public TestBean(String strName_p){
    this.name=strName_p;
  } 
  public void setName(String strName_p){
    this.name=strName_p;
  }
  public String getName(){
    return this.name;
  } 
}
-------------说明:已经编译,且放在正确的目录中(classes/test目录中)-------------
<!-- TestBean.jsp -->
<%@ page contentType="text/html; charset=GB2312" language="java"%> 
<jsp:useBean id="testBean" class="test.TestBean" scope="application" />
<html><body><center>
<%
testBean.setName("This is First JavaBean.");
%>
Java bean name is: <%=testBean.getName()%>
</center></body></html> 

在浏览器中浏览时出错:The value for the useBean class attribute test.TestBean is invalid.
-----------------------------------------
尝试另一种方法:
<!-- TestBean2.jsp -->
<%@ page import="test.TestBean" %> 
<html><body><center>
<%
TestBean testBean=new TestBean("This is First JavaBean.");
%>
Java bean name is: <%=testBean.getName()%>
</center></body></html> 

TestBean2.jsp一切正常!
-----------------------------------------
问题:1、以上两种方法有什么区别;
   2、第一种方法失败的原因在哪里?
1 楼 SwiftHorse 2008-01-04  
缺少构造函数!
2 楼 vannimouse 2008-03-06  
第一种方法:没有import javabean,<usebean>这个标签是用来在jsp中实例化一个对象的,你不写这个可以在<%%>里面new也可以。但是不import不行。