看jsp遇到一个怪问题,怎么也想不通.
在看Oreally 的Java Server Pages 2nd,里面提到在jsp中使用
java bean,不过查看源代码,发现一些怪异的问题,想不通.
在jsp中有这么一段代码:
<jsp:useBean id="msg"
class="com.ora.jsp.beans.motd.MixedMessageBean" />
<h2>Deep Thoughts - by Jack Handey</h2>
<jsp:setProperty name="msg" property="category"
value="thoughts" />
<i>
<jsp:getProperty name="msg" property="message" />
</i>
而查看了被调用的com.ora.jsp.beans.motd.MixedMessageBean class
代码:
public class MixedMessageBean implements Serializable {
// Fields
private static int quoteIndex;
private static int thoughtIndex;
private List quotes;
private List thoughts;
private String category;
// Constructors
public MixedMessageBean() { }
// Methods
public void setCategory(String string) { }
public String getMessage() { return null;}
private void initMessageLists() { }
}
奇怪的是,bean里面的set method,是空函数,那么bean是怎么设置值的?
而get method,return null,并不是return一个String,那么为什么运行该jsp
网页后的结果是
Deep Thoughts - by Jack Handey
We tend to scoff at the beliefs of the ancients.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~这段话哪里来的?
网页并没有提示我输入啊,直接显示这个结果了
而且我查看了其他例子,bean里面的set 方法都是 空函数,get方法都只是简单地return null
问题点数:0、回复次数:4Top
1 楼KillAllError(无心)回复于 2003-09-02 20:41:51 得分 0
晕,你是用JB看的吧!呵呵
其实这是因为MixedMessageBean的java文件没有给你,只给了你.class文件,JB自己把.class反编译出来的空壳!推荐使用其它的反编译工具,看看就不一样了。Top
2 楼mcgovern(老麦)回复于 2003-09-02 21:19:16 得分 0
用别的反编译工具反编译一下,就可以看到,用jb是看不到的Top
3 楼SlzAgain(学网络知识,黑日本网站)回复于 2003-09-02 21:22:53 得分 0
用DJ Decompiler就可以查看.class文件的原文件Top
4 楼zhoukun(蒸馏水)回复于 2003-09-02 21:26:07 得分 0
thx!!!
我真是傻,没有留意是.class文件Top




