如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
www.bj-accp.comPortlet开发入门实例想索取更多相关资料请加qq:649085085或登录HYPERLINK"http://www.bj-accp.com"http://www.bj-accp.comPS;本文档由北大青鸟广安门收集自互联网,仅作分享之用。1原生Portlet开发这是最简单、最本质的开发方式,直接基于Portlet规范定义的接口开发Portlet。优点是贴近底层比较灵活,缺点当然就是所有事情都要自己去做。就好比不用SpringMVC、Struts,直接基于Servlet开发一样。这种方式比较适合自己开发Portlet框架。publicclassNativePortletimplementsPortlet{privateLoggerlogger=LoggerFactory.getLogger(NativePortlet.class);privatePortletConfigconfig;@Overridepublicvoidinit(PortletConfigportletConfig)throwsPortletException{logger.info("初始化Portlet");this.config=portletConfig;}@OverridepublicvoidprocessAction(ActionRequestactionRequest,ActionResponseactionResponse)throwsPortletException,IOException{logger.info("处理Action动作");logger.info("接收到POST请求,用户名为[{}]",actionRequest.getParameter("userName"));}@Overridepublicvoidrender(RenderRequestrenderRequest,RenderResponserenderResponse)throwsPortletException,IOException{logger.info("处理Render动作");WindowStatestate=renderRequest.getWindowState();if(state.equals(WindowState.MINIMIZED)){return;}//doDispatch();PortletModemode=renderRequest.getPortletMode();if(PortletMode.VIEW.equals(mode)){//doView();StringnormalPage=config.getInitParameter("ViewPage");if(WindowState.NORMAL.equals(state)){this.include(renderRequest,renderResponse,normalPage);}else{this.include(renderRequest,renderResponse,"");}}elseif(PortletMode.EDIT.equals(mode)){//doEdit();}elseif(PortletMode.HELP.equals(mode)){//doHelp();}else{thrownewPortletException("unknownportletmode:"+mode);}}@Overridepublicvoiddestroy(){logger.info("销毁Portlet");}privatevoidinclude(RenderRequestrequest,RenderResponseresponse,StringviewPage)throwsPortletException,IOException{response.setContentType("text/html");PortletContextcontext=config.getPortletContext();PortletRequestDispatcherrequestDispatcher=context.getRequestDispatcher(viewPage);requestDispatcher.include(request,response);}}可以看到,在render()方法中,我们要自己处理不同Portlet模式(View,Edit,Help等)的渲染,根据需要做分发。诸如此类的各种细节都需要我们自己去制定规