1
22
23 package com.liferay.portlet.journal.action;
24
25 import com.liferay.portal.PortalException;
26 import com.liferay.portal.kernel.language.LanguageUtil;
27 import com.liferay.portal.kernel.util.ContentTypes;
28 import com.liferay.portal.kernel.util.ParamUtil;
29 import com.liferay.portal.security.auth.PrincipalException;
30 import com.liferay.portal.struts.ActionConstants;
31 import com.liferay.portal.util.PortalUtil;
32 import com.liferay.portlet.journal.NoSuchArticleException;
33 import com.liferay.portlet.journal.model.JournalArticle;
34 import com.liferay.portlet.journal.service.JournalArticleLocalServiceUtil;
35 import com.liferay.util.servlet.ServletResponseUtil;
36
37 import javax.servlet.http.HttpServletRequest;
38 import javax.servlet.http.HttpServletResponse;
39 import javax.servlet.jsp.PageContext;
40
41 import org.apache.struts.action.Action;
42 import org.apache.struts.action.ActionForm;
43 import org.apache.struts.action.ActionForward;
44 import org.apache.struts.action.ActionMapping;
45
46
54 public class GetLatestArticleContentAction extends Action {
55
56 public ActionForward execute(
57 ActionMapping mapping, ActionForm form, HttpServletRequest req,
58 HttpServletResponse res)
59 throws Exception {
60
61 try {
62 long groupId = ParamUtil.getLong(req, "groupId");
63 String articleId = ParamUtil.getString(req, "articleId");
64
65 String languageId = LanguageUtil.getLanguageId(req);
66
67 JournalArticle article =
68 JournalArticleLocalServiceUtil.getLatestArticle(
69 groupId, articleId, Boolean.TRUE);
70
71 String fileName = "content.xml";
72 byte[] byteArray =
73 article.getContentByLocale(languageId).getBytes();
74
75 ServletResponseUtil.sendFile(
76 res, fileName, byteArray, ContentTypes.TEXT_XML_UTF8);
77
78 return null;
79 }
80 catch (PortalException pe) {
81 if (pe instanceof PrincipalException) {
82 PortalUtil.sendError(
83 HttpServletResponse.SC_FORBIDDEN, pe, req, res);
84 }
85 else if (pe instanceof NoSuchArticleException) {
86 PortalUtil.sendError(
87 HttpServletResponse.SC_NOT_FOUND, pe, req, res);
88 }
89
90 return null;
91 }
92 catch (Exception e) {
93 req.setAttribute(PageContext.EXCEPTION, e);
94
95 return mapping.findForward(ActionConstants.COMMON_ERROR);
96 }
97 }
98
99 }