Получить ключевое слово поиска со стойками Liferay
Я хочу получить ключевые слова для поиска с помощью портлета поиска. Я увидел, что в URL появляются: "struts_action=/search/seach", затем я искал в strut-config.xml и найти:
action path = "/ search / search" forward = "portlet.search.search"
Я пытаюсь сделать стойку, но я не знаю много о стойках, и это не работает. Это код "liferay-hook.xml":
<portal-properties>portal.properties</portal-properties>
<struts-action>
<struts-action-path>/search/search</struts-action-path>
<struts-action-impl>com.segmentationProject.searchAction.struts.SearchAction</struts-action-impl>
</struts-action>
portal.properties: auth.public.paths = / search / search
SearchAction.java:
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.liferay.portal.kernel.struts.BaseStrutsAction;
public class SearchAction extends BaseStrutsPortletAction {
@Override
public void processAction(StrutsPortletAction originalStrutsPortletAction, PortletConfig portletConfig, ActionRequest actionRequest, ActionResponse actionResponse) throws Exception {
System.out.println("inside the process ");
super.processAction(originalStrutsPortletAction, portletConfig, actionRequest, actionResponse);
}
@Override
public String render(StrutsPortletAction originalStrutsPortletAction,PortletConfig portletConfig, RenderRequest renderRequest, RenderResponse renderResponse) throws Exception {
// TODO Auto-generated method stub
System.out.println("inside the render");
return super.render(portletConfig, renderRequest, renderResponse);
}
}
Любая идея о том, что я пропал или не так? Я только хочу получить ключевые слова, а затем сделать поиск в обычном режиме. Спасибо!
2 ответа
Я думаю, что этот сделает работу
String keywords = ParamUtil.getString(actionRequest, "keywords");
ParamUtil
используйте пространство имен портлета для получения параметров.
Я думаю, что вы должны использовать originalStrutsPortletAction вместо super.
super.processAction(originalStrutsPortletAction, portletConfig, actionRequest, actionResponse);
}
просто замените super на originalStrutsPortletAction
originalStrutsPortletAction .processAction(originalStrutsPortletAction, portletConfig, actionRequest, actionResponse);
}