我希望使用搜索的portlet获取搜索的关键字。我在网址中看到:“struts_action = / search / seach”然后我在strut-config.xml中查找并找到:
action path =“/ search / search”forward =“portlet.search.search”
我正试图做一个支柱,但我不太了解struts,它不起作用。这是'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 = /搜索/查找
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);
}
}
关于我遗失或做错的任何想法?我只想获得关键字,然后正常进行搜索。 谢谢!
答案 0 :(得分:1)
我认为这个人会做这个工作:
String keywords = ParamUtil.getString(actionRequest, "keywords");
ParamUtil
使用portlet名称空间来检索参数。
答案 1 :(得分:0)
我认为你必须使用originalStrutsPortletAction而不是super。
super.processAction(originalStrutsPortletAction, portletConfig, actionRequest, actionResponse);
}
只需用originalStrutsPortletAction替换super
originalStrutsPortletAction .processAction(originalStrutsPortletAction, portletConfig, actionRequest, actionResponse);
}