(緊急求助)關於jive訊息過濾的實現相關問題

chimae發表於2003-12-14
偶是個菜鳥,現在迷路了,望大俠給予指點!
在jive/admin/filter.jsp中新增刪除編輯過濾器,其最終結果都是儲存在了jive_filtets.xml檔案裡面。這個我
明白了。
可是就是不明白對於一個message的過濾動作究竟發生在哪一步。
下面的是message介面中的註釋
/**
* Returns the message body. If message filters are active, the body
* returned will be a filtered one. Because filters often provide security
* functionality such as stripping out HTML and Javascript, this method is
* the preferred way to get the body of a message.
*
* @return the body of the message.

public String getBody();
這個是在DbForumMessage中的的實現程式碼。
public String getBody() {
// Return cached filter value if it exists.
if (filteredBody != null) {
return filteredBody;
}
// Otherwise, return normal value.
else {
return body;
}
}

不明白這裡的判斷,在哪一個地方改變了filteredBody的值使他不等於null值。
改變是肯定的,可是我找不到具體動作在哪一步發生。
我清楚
ForumMessage,DbForumMessage,ForumMessageFilter(以及繼承於他的具體過濾器類),
FilterManager,DbFilterManager之間的關係
但是下面的這段程式碼真的讓我迷惑了,到底在那個呼叫了具體的過濾器類使message發生改變,找了很長時間
都沒有找到,可能就差那一步。
望大蝦不吝賜教,不勝感激
if (filteredBody != null) {
return filteredBody;
}

相關文章