使用struts Liferay获取搜索关键字

时间:2013-10-04 11:41:15

标签: search liferay hook struts-1 liferay-hook

我希望使用搜索的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);
    }
}

关于我遗失或做错的任何想法?我只想获得关键字,然后正常进行搜索。 谢谢!

2 个答案:

答案 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);
}