怎么用useBean 的setProperty 老是出错?
请看jsp和bean两个文件
t.jsp
<html>
<body>
<%@ page contentType="text/html;charset=gb2312" %>
<jsp:useBean id="Demo" class="test.t">
<jsp:setProperty name="Demo" property="i" value="1" />
</jsp:useBean>
<% Demo.get(); %>
<% System.out.print("OK+<br>");
out.print("OK2"+"<br>");
//out.print(i);
%>
</body>
</html>
t.java
package test;
public class t {
String i="0";
public void get(){
System.out.print("Success!");
}
}
但运行t.jsp时,老是出现:org.apache.jasper.JasperException: Cannot find any information on property 'i' in a bean of type 'test.t'
在bean中没有找到i,为什么?怎么解决?
问题点数:20、回复次数:6Top
1 楼AAsx(arbiter)回复于 2003-03-01 07:15:19 得分 0
t.java改成如下:
package test;
public class t{
public void seti(String i){
i="0";
}
public void get(){
System.out.print("Success!");
}
}Top
2 楼kops(ynwa)回复于 2003-03-01 11:14:18 得分 0
为什么呢? 我想i作为t的一个属性,然后用setProperty改变t的属性i ,有什么问题?Top
3 楼zj2977(大地)回复于 2003-03-01 12:40:28 得分 0
想固然是可以的,但有时很难做到
其实最简单的方法就是t.jsp时在地址栏中输入t.js&i=1Top
4 楼kops(ynwa)回复于 2003-03-01 18:13:38 得分 0
我的目的是让jsp传一个值给bean,再在bean修改,传回jsp,bean 做数据处理,请举一例。Top
5 楼diaopeng(放飞自己)回复于 2003-03-03 22:25:30 得分 20
都错,在JAVABEAN中参数的传递要使用set和get方法,而不是说随便就能修改的
所以要传递修改成员变量,你的t.java必须修改如下:
package test;
public class t {
String i="0";
public String getI(){
System.out.print("Success!");
return this.i;
}
public void setI(String i){
this.i=i;
}
}
Top
6 楼gks_cn(981530)回复于 2003-07-18 11:42:58 得分 0
<jsp:setProperty name="Demo" property="i" value="1" />
实际上是调用
Demo.setI("1");
这个方法。你没有这个方法,当然出错了
同里
<jsp:getProperty name="Demo" property="i" />
Demo.getI();
Top




