2012-11-26 3 views
-1

나는 지난 몇 주 동안부터 평생 일하기 시작했습니다. liferay plugin 개발에 대한 몇 가지 질문이 있습니다.평생의 요청 처리기에 대한 기본 질문

  1. 플러그인 안에 서블릿을 사용할 수 있습니까?
  2. 그렇다면 어떤 플러그인을 사용할 수 있습니까? 그것은 포틀릿 또는 후크입니까 아니면 내선입니까?
  3. web.xml에서와 같이 서블릿을 http://liferayhost:8090/url/callback에 매핑하려면 어떻게해야합니까?
  4. 포틀릿 또는 후크 용 web.xml을 작성할 수 있습니까?

이 주제를 이해하는 데 도움을 주시기 바랍니다.

답변

0

플러그인 안에 서블릿을 사용할 수 있습니까?

당신이 Liferay Hook를 작성하는 경우, 귀하의 doRun 방법을 사용하면 RequestResponse 각각 처리하는 데 사용할 수 있습니다 RequestResponse 개체를 얻을 것이다.

예를 들어 요청 개체를 통해 세션 ID, 쿠키 등을 가져올 수 있습니다.

Cookie[] cookies = request.getCookies();

그리고 당신은 리디렉션을 수행 할 Response 객체를 사용할 수 있습니다

session=request.getSession(false);

,

response.sendRedirect("/PathToYourPage");

그래서, 당신은 당신이 서블릿으로 얻을 수있는 거의 모든 것을 얻을 수 있습니다.

Portlet 플러그인을 개발하는 경우 개발중인 Portlet을 기억하고 Servlet이 아니라는 것을 기억하십시오. 당신이 RequestResponse 객체를 원하는 경우 Portlet에서, 당신은 '당신이 Theme 플러그인을 개발하는 경우 Ext

, 정말 돈에 대한 시도를 줄 수있는 같은 라인에 코드

javax.servlet.http.HttpServletRequest request = (javax.servlet.http.HttpServletRequest) (FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("com.liferay.portal.kernel.servlet.PortletServletRequest")); 
javax.servlet.http.HttpServletResponse response = (javax.servlet.http.HttpServletResponse) (FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("com.liferay.portal.kernel.servlet.PortletServletResponse")); 

이하로 사용할 수 있습니다 Servlet으로 달성하고자하는 것을 이해하지 못합니다.

하지만 여전히 할 수있는 일은 테마 vm에있는 하나의 JSP 페이지를 templates 폴더에 포함시키는 것입니다.

$theme.include($themeServletContext, "/myJSP.jsp") 

이 JSP 페이지는 WebContent 폴더 아래에 배치 할 수 있습니다. 이 myJSP.jsp에서 JSTL/Scriplets를 통해 Request/Response 개의 객체를 얻을 수 있습니다.

두 번째 질문에도 대답이되기를 바랍니다.

web.xml에서와 같이 http :/liferayhost : 8090/url/callback에 서블릿을 매핑하는 방법은 무엇입니까?

8090은 색인을 언급하여 응용 프로그램 서버에서 구성했을 포트 번호입니다.

url 값은 웹 서버 (예 : Apache) uriworkers.properties에서 구성했을 웹 응용 프로그램 이름 (war 파일) 이름입니다. callback은 응용 프로그램의 web.xml에서 구성 할 Servlet URL 패턴입니다.

포틀릿 또는 후크 용 web.xml을 작성할 수 있습니까?

PortletHook 모두에 대해 web.xml을 쓸 수 있습니다. 후크의 경우, 비록 예외는 당신이 web.xml에 기본 구성을 가지고 던져 질 것이지만, 나는 당신이 거기에서하고 싶은 것을 이해하지 못한다.

관련 문제