1
22
23 package com.liferay.portlet.search.action;
24
25 import com.liferay.portal.kernel.search.OpenSearch;
26 import com.liferay.portal.kernel.util.ContentTypes;
27 import com.liferay.portal.kernel.util.StringPool;
28 import com.liferay.portal.search.PortalOpenSearchImpl;
29 import com.liferay.portal.util.PortalUtil;
30 import com.liferay.util.servlet.ServletResponseUtil;
31
32 import javax.servlet.http.HttpServletRequest;
33 import javax.servlet.http.HttpServletResponse;
34
35 import org.apache.struts.action.Action;
36 import org.apache.struts.action.ActionForm;
37 import org.apache.struts.action.ActionForward;
38 import org.apache.struts.action.ActionMapping;
39
40
45 public class OpenSearchAction extends Action {
46
47 public ActionForward execute(
48 ActionMapping mapping, ActionForm form, HttpServletRequest request,
49 HttpServletResponse response)
50 throws Exception {
51
52 try {
53 ServletResponseUtil.sendFile(
54 response, null, getXML(request), ContentTypes.TEXT_XML_UTF8);
55
56 return null;
57 }
58 catch (Exception e) {
59 PortalUtil.sendError(e, request, response);
60
61 return null;
62 }
63 }
64
65 protected byte[] getXML(HttpServletRequest request) throws Exception {
66 OpenSearch search = new PortalOpenSearchImpl();
67
68 String xml = search.search(
69 request,
70 request.getRequestURL().toString() + StringPool.QUESTION +
71 request.getQueryString());
72
73 return xml.getBytes();
74 }
75
76 }