1 package sample.actions;
2
3 import org.apache.jetspeed.modules.actions.portlets.JspPortletAction;
4 import org.apache.jetspeed.portal.Portlet;
5 import org.apache.jetspeed.util.PortletSessionState;
6 import org.apache.turbine.util.RunData;
7 import javax.servlet.http.HttpServletRequest;
8
9
10 public class SampleJspAction extends JspPortletAction {
11
12 // 通常表示
13 protected void buildNormalContext(Portlet portlet, RunData rundata)
14 throws Exception {
15
16 // 設定されているサブジェクト、本文の取得
17 String subject = (String)PortletSessionState.getAttributeWithFallback(
18 portlet, rundata, "subject");
19 String body = (String)PortletSessionState.getAttributeWithFallback(
20 portlet, rundata, "body");
21
22 // サブジェクト、本文を JSP で使用できるように設定
23 HttpServletRequest request = rundata.getRequest();
24 request.setAttribute("subject", subject);
25 request.setAttribute("body", body);
26
27 // テンプレート設定
28 setTemplate(rundata,
29 portlet.getPortletConfig().getInitParameter("template"));
30 }
31
32 // 最大表示
33 protected void buildMaximizedContext(Portlet portlet, RunData rundata)
34 throws Exception {
35
36 buildNormalContext(portlet, rundata);
37
38 setTemplate(rundata,
39 portlet.getPortletConfig().getInitParameter("maximizeTemplate"));
40 }
41
42 // 編集モード表示
43 protected void buildConfigureContext(Portlet portlet, RunData rundata)
44 throws Exception {
45
46 buildNormalContext(portlet, rundata);
47
48 setTemplate(rundata,
49 portlet.getPortletConfig().getInitParameter("customizeTemplate"));
50 }
51
52 // データ更新
53 public void doUpdate(RunData rundata, Portlet portlet) {
54
55 HttpServletRequest request = rundata.getRequest();
56
57 String subject = getParameter(rundata, "subject");
58 String body = getParameter(rundata, "body");
59 portlet.setAttribute("subject", subject, rundata);
60 portlet.setAttribute("body", body, rundata);
61
62 request.setAttribute("subject", subject);
63 request.setAttribute("body", body);
64 }
65
66 // リクエストパラメータの取得
67 private String getParameter(RunData rundata, String parameter) {
68 String value = rundata.getParameters().getString(parameter);
69 try {
70 value = new String (value.getBytes("8859_1"), "EUC-JP");
71 } catch(Exception e) {}
72 return( value );
73 }
74
75 }
|