2013-10-04 3 views
1

검색 포틀릿을 사용하여 검색 키워드를 가져오고 싶습니다. struts_action =/search/seach "라는 URL을 보았습니다. strut-config.xml에서 찾아 보았습니다.
action path ="/ search/search "forward ="portlet.search.search "struts를 사용하여 검색 키워드 가져 오기 Liferay

스트럿을하려고하는데 스트럿에 대해 잘 모르지만 작동하지 않습니다.

<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 : 이것은 '을 Liferay-hook.xml'의 코드 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

에서 슈퍼를 대체? 어쩌면 검색 JSP를 연결하는 것이 좋습니다. –

+0

사용자가 일부 항목을 검색 한 경우 저장하기 때문에 검색 키워드가 필요합니다. 나는 URL에서 그것을 보았 기 때문에 스트럿 작업에서 생각했습니다. 나는 Liferay에서 약간의 초보자이다. JSP와 Strut 액션의 훅 (hook)의 차이점은 무엇인가? 나는 검색의 기능을 바꾸고 싶지 않다. – sandra

+1

감사합니다. Aleksandr M. search.jsp와이 코드의 연결 고리를 만들었습니다. "\t String kw = ParamUtil.getString (request,"keywords ");" 나는 키워드를 얻는다. – sandra

답변

1

나는이 사람이 일을 할 것이라고 생각 :

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

ParamUtil 사용 포틀릿 네임 스페이스 매개 변수를 검색 할 수 있습니다.

+0

그리고이 코드를 어디에서 사용합니까? –

+0

Sandra가 질문에 설명하는'SearchAction'에서 이것을 사용할 수 있습니다 :) – guli

0

super 대신 originalStrutsPortletAction을 사용해야한다고 생각합니다. 사용자가 검색 키워드를해야 할 이유는 무엇

super.processAction(originalStrutsPortletAction, portletConfig, actionRequest, actionResponse); 
} 

단지 originalStrutsPortletAction

originalStrutsPortletAction .processAction(originalStrutsPortletAction, portletConfig, actionRequest, actionResponse); 
} 
관련 문제