플러그인 안에 서블릿을 사용할 수 있습니까?
당신이 Liferay Hook
를 작성하는 경우, 귀하의 doRun
방법을 사용하면 Request
및 Response
각각 처리하는 데 사용할 수 있습니다 Request
및 Response
개체를 얻을 것이다.
예를 들어 요청 개체를 통해 세션 ID, 쿠키 등을 가져올 수 있습니다.
Cookie[] cookies = request.getCookies();
그리고 당신은 리디렉션을 수행 할 Response
객체를 사용할 수 있습니다
session=request.getSession(false);
,
response.sendRedirect("/PathToYourPage");
그래서, 당신은 당신이 서블릿으로 얻을 수있는 거의 모든 것을 얻을 수 있습니다.
Portlet
플러그인을 개발하는 경우 개발중인 Portlet
을 기억하고 Servlet
이 아니라는 것을 기억하십시오. 당신이 Request
및 Response
객체를 원하는 경우 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을 작성할 수 있습니까?
Portlet
및 Hook
모두에 대해 web.xml
을 쓸 수 있습니다. 후크의 경우, 비록 예외는 당신이 web.xml
에 기본 구성을 가지고 던져 질 것이지만, 나는 당신이 거기에서하고 싶은 것을 이해하지 못한다.