2012-07-30 52 views
1

重寫財產 「sites.email.membership.reply.body」 我想在我的portal-ext.properties覆蓋以下屬性:如何在Liferay中

sites.email.membership.reply.subject=com/liferay/portlet/sites/dependencies/email_membership_reply_subject.tmpl 
sites.email.membership.reply.body=com/liferay/portlet/sites/dependencies/email_membership_reply_body.tmpl 
sites.email.membership.request.subject=com/liferay/portlet/sites/dependencies/email_membership_request_subject.tmpl 
sites.email.membership.request.body=com/liferay/portlet/sites/dependencies/email_membership_request_body.tmpl 

到這樣的事情:

sites.email.membership.reply.subject=com/krishna/email_membership_reply_subject.tmpl 
sites.email.membership.reply.body=com/krishna/email_membership_reply_body.tmpl 
sites.email.membership.request.subject=com/krishna/email_membership_request_subject.tmpl 
sites.email.membership.request.body=com/krishna/email_membership_request_body.tmpl 

我已經在EXT,即我已經創建了該包:ext-impl/src/com/krishna/EXT-plugin,它工作正常,但我不能這樣做在hookportlet。爲什麼?因爲它給我的異常:

java.io.IOException: Unable to open resource in class loader com/krishna/email_membership_request_subject.tmpl 

所以,我的問題:有沒有辦法做到這一點的鉤或portlet或僅EXT可以用嗎?

感謝

回答

3

這隻能在EXT插件來完成。由於以下兩個原因:

  1. 掛鉤可以有利於覆蓋少數屬性/服務,但不是全部。這個特定的屬性不被鉤子支持。

  2. 對於portlet,這是絕對不可能的,因爲您已經面臨類加載問題。由於portal-impl.jar位於liferay的ROOT/WEB-INF/lib內部,因此您的portlet無法訪問它。

所以EXT插件是唯一的方法。

+0

你有鉤子支持的屬性列表嗎?並且通過重寫此屬性並不意味着我正在嘗試訪問'portal-impl.jar'。我知道加載這些'* .tmpl'文件的代碼位於'portal-impl.jar'中,但是我沒有辦法讓liferay查看我的特定插件嗎? – 2012-07-31 06:35:07

+0

您可以通過Liferay IDE找到它,它將允許您查看創建掛鉤時可以覆蓋的大部分屬性。據我所知,沒有其他方法可以從插件中包含模板。 – Sharana 2012-07-31 09:22:11