原文鍵結網址
公司未來面對的需求可能會用到
在這裡先筆記下來
2014年5月5日 星期一
2013年12月9日 星期一
[Liferay] 使用SubscriptionSender透過 Gmail 寄信的方法
1.Server Setting:
%liferay_home%\tomcat-7.0.40\conf\Catalina\localhost\ROOT.xml
在<Context .....>的內容裡面加上
<Resource
name="mail/MailSession"
auth="Container"
type="javax.mail.Session"
mail.pop3.host="pop.gmail.com"
mail.pop3.port="110"
mail.smtp.host="smtp.gmail.com"
mail.smtp.port="465"
mail.smtp.user=user@gmail.com
mail.smtp.password="password"
mail.smtp.auth="true"
mail.smtp.starttls.enable="true"
mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"
mail.imap.host="imap.gmail.com"
mail.imap.port="993"
mail.transport.protocol="smtp"
mail.store.protocol="imap"
/>
</Context>
在portal-ext.properties裡面加上
mail.session.jndi.name=mail/MailSession
2.SubscriptionSender
SubscriptionSender subscriptionSender = new SubscriptionSender();String body = "";
subscriptionSender.setSubject("your mail subject");
body ="your mail content"
User receiver = UserLocalServiceUtil.getUser(receiverUserId());
subscriptionSender.setUserId(receiver .getUserId());
subscriptionSender.setCompanyId(receiver.getCompanyId());
subscriptionSender.setMailId("user", receiver .getUserId());
subscriptionSender.addRuntimeSubscribers(receiver .getEmailAddress(),
receiver .getFullName());
subscriptionSender.setBody(body);
subscriptionSender.setFrom("fake@com.tw", "your system name or something");
subscriptionSender.setHtmlFormat(false);
subscriptionSender.flushNotificationsAsync();
2013年11月7日 星期四
Liferay中,把searchContainer的內容輸出excel的方法(liferay Export Excel)
今天遇到的需求
畫面上有liferay search container
若我們要把SearchContainer的內容輸出成excel
2013年10月23日 星期三
[筆記]Liferay 中使用aui:input type="checkbox"時,取不到正確的值的狀況
<Qusetion>
<aui:input type="checkbox" name="name" value="123">
<aui:input type="checkbox" name="name" value="456">
<aui:input type="checkbox" name="name" value="789">
這時候如果在後端使用一般的 request.getParameterValues("name");
不管客戶端是否有勾選Checkbox
取得的結果都會是這樣的陣列{ 123,456,789}
該怎麼解決?
<answer>
解決方法是使用
request.getParameterValues("nameCheckbox");
因為<aui:input> tag會在你的Checkbox的name上
幫你做name+Checkbox做為name的屬性,以作為與一般input tag的區別
當然若你想使用javascript來取值也是一樣的道理
所以javascript就要變成
<script>
document.getElementsbyName("<portlet:namespace/>nameCheckbox")[0].value;
</script>
被這個問題搞了兩天煩都煩死了XDrz
<aui:input type="checkbox" name="name" value="123">
<aui:input type="checkbox" name="name" value="456">
<aui:input type="checkbox" name="name" value="789">
這時候如果在後端使用一般的 request.getParameterValues("name");
不管客戶端是否有勾選Checkbox
取得的結果都會是這樣的陣列{ 123,456,789}
該怎麼解決?
<answer>
解決方法是使用
request.getParameterValues("nameCheckbox");
因為<aui:input> tag會在你的Checkbox的name上
幫你做name+Checkbox做為name的屬性,以作為與一般input tag的區別
當然若你想使用javascript來取值也是一樣的道理
所以javascript就要變成
<script>
document.getElementsbyName("<portlet:namespace/>nameCheckbox")[0].value;
</script>
被這個問題搞了兩天煩都煩死了XDrz
2013年10月2日 星期三
Liferay自訂portal的configuration畫面
有時候會要在頁面上做一些參數的控制
這時候需要利用到Portal本身的控制面板
但是原本右上角的控制面板功能可能不是你要的
(大部分都是權限控管,如果是多媒體Portal則可能是控制填入的檔案類型之類的)
這時候我們可以自訂自己的configuration
Liferay環境建立
基本的JAVA Machine跟環境都安裝完畢後
前往sourceforge下載
Liferay IDE
Liferay tomcat
Liferay sdk plugin
另外下載Tomcat Plugin v33
將Tomcat Plugin V33丟進Eclipse的plugin資料夾
這樣就可以在Eclipse中設定Tomcat
接下來
打開 Liferay IDE的 Eclipse,打開Preference
選擇Tomcat
將Tomcat的設定設為7.X,路徑指向liferay Tomcat解壓縮後的路徑
(例如:X:\liferay-portal-6.1.2-ce-ga3)
路徑正確下方的Context directory會自動帶入環境設定
接下來點選Liferay
會看到3個超連結
第一項點選後,按下add,選擇你Liferay sdk plugin的位置
下方Open in Eclipse設為在Ecllpse中開啟
第二項因為剛剛選Tomcat7.X,所以選擇7.X版的Liferay CE6.1版本
接下來Show View開啟 Server的視窗就可以新增LifeRay的Tomcat伺服器了。
若要使用自己的資料庫
必須在\tomcat-7.0.40\webapps\ROOT\WEB-INF\classes
這個資料夾下面
新增一個名為portal-ext.properties的檔案
以使用MySQL為範例
輸入如下的內容
jdbc.default.driverClassName=com.mysql.jdbc.Driver
jdbc.default.url=jdbc:mysql://localhost/testportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
jdbc.default.username=root
jdbc.default.password=1234
這樣就可以連結自己的資料庫了
當然localhost後面的資料庫名稱要使用自己的資料庫名稱
前往sourceforge下載
Liferay IDE
Liferay tomcat
Liferay sdk plugin
另外下載Tomcat Plugin v33
將Tomcat Plugin V33丟進Eclipse的plugin資料夾
這樣就可以在Eclipse中設定Tomcat
接下來
打開 Liferay IDE的 Eclipse,打開Preference
選擇Tomcat
將Tomcat的設定設為7.X,路徑指向liferay Tomcat解壓縮後的路徑
(例如:X:\liferay-portal-6.1.2-ce-ga3)
路徑正確下方的Context directory會自動帶入環境設定
接下來點選Liferay
會看到3個超連結
第一項點選後,按下add,選擇你Liferay sdk plugin的位置
下方Open in Eclipse設為在Ecllpse中開啟
第二項因為剛剛選Tomcat7.X,所以選擇7.X版的Liferay CE6.1版本
接下來Show View開啟 Server的視窗就可以新增LifeRay的Tomcat伺服器了。
若要使用自己的資料庫
必須在\tomcat-7.0.40\webapps\ROOT\WEB-INF\classes
這個資料夾下面
新增一個名為portal-ext.properties的檔案
以使用MySQL為範例
輸入如下的內容
jdbc.default.driverClassName=com.mysql.jdbc.Driver
jdbc.default.url=jdbc:mysql://localhost/testportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
jdbc.default.username=root
jdbc.default.password=1234
這樣就可以連結自己的資料庫了
當然localhost後面的資料庫名稱要使用自己的資料庫名稱
2013年8月20日 星期二
[轉載]無邊框模式時,呼叫SaveFileDialog 時出現ThreadStateException的解決方法
原網址 http://blog.csdn.net/fisher_china/article/details/6043475
//先製作一個DialogState的類別
public class DialogState
{
public DialogResult result;
public FileDialog dialog;
public void ThreadProcShowDialog()
{
result = dialog.ShowDialog();
}
}
//在你呼叫SaveFileDialog的類別裡面,加入這個方法
private DialogResult STAShowDialog(FileDialog dialog)
{
DialogState state = new DialogState();
state.dialog = dialog;
System.Threading.Thread t = new System.Threading.Thread(state.ThreadProcShowDialog);
t.SetApartmentState(System.Threading.ApartmentState.STA);
t.Start();
t.Join();
return state.result;
}
调用时:(使用時)
OpenFileDialog openFileDlg= new OpenFileDialog();
openFileDlg.InitializeLifetimeService();
openFileDlg.Filter = "Config Files (*.config)|*.config| (*.xml)|*.xml";
openFileDlg.Title = "选择配置文件";
DialogResult ret = STAShowDialog(openFileDlg); //使用多執行緒的方式執行ShowDialog
if (ret == DialogResult.OK)
//先製作一個DialogState的類別
public class DialogState
{
public DialogResult result;
public FileDialog dialog;
public void ThreadProcShowDialog()
{
result = dialog.ShowDialog();
}
}
//在你呼叫SaveFileDialog的類別裡面,加入這個方法
private DialogResult STAShowDialog(FileDialog dialog)
{
DialogState state = new DialogState();
state.dialog = dialog;
System.Threading.Thread t = new System.Threading.Thread(state.ThreadProcShowDialog);
t.SetApartmentState(System.Threading.ApartmentState.STA);
t.Start();
t.Join();
return state.result;
}
调用时:(使用時)
OpenFileDialog openFileDlg= new OpenFileDialog();
openFileDlg.InitializeLifetimeService();
openFileDlg.Filter = "Config Files (*.config)|*.config| (*.xml)|*.xml";
openFileDlg.Title = "选择配置文件";
DialogResult ret = STAShowDialog(openFileDlg); //使用多執行緒的方式執行ShowDialog
if (ret == DialogResult.OK)
訂閱:
文章 (Atom)