1

検索のポートレットで検索のキーワードを取得したい。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=/検索/検索

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

私が行方不明または間違っていることについて何か考えはありますか? キーワードを取得してから、通常どおり検索を実行したいだけです。ありがとう!

4

2 に答える 2

1

私はこれが仕事をすると思います:

String keywords = ParamUtil.getString(actionRequest, "keywords");

ParamUtilポートレット名前空間を使用してパラメーターを取得します。

于 2013-10-07T15:29:43.137 に答える