java类javax.portlet.PortletMode的实例源码

Portlet20AnnotationControllerTests.java 文件源码 项目:spring4-understanding 阅读 24 收藏 0 点赞 0 评论 0
@Test
public void standardHandleMethod() throws Exception {
    DispatcherPortlet portlet = new DispatcherPortlet() {
        @Override
        protected ApplicationContext createPortletApplicationContext(ApplicationContext parent) throws BeansException {
            GenericWebApplicationContext wac = new GenericWebApplicationContext();
            wac.registerBeanDefinition("controller", new RootBeanDefinition(MyController.class));
            wac.refresh();
            return wac;
        }
    };
    portlet.init(new MockPortletConfig());

    MockRenderRequest request = new MockRenderRequest(PortletMode.VIEW);
    MockRenderResponse response = new MockRenderResponse();
    portlet.render(request, response);
    assertEquals("test", response.getContentAsString());
}
PortletAnnotationControllerTests.java 文件源码 项目:spring4-understanding 阅读 22 收藏 0 点赞 0 评论 0
@Test
public void standardHandleMethod() throws Exception {
    DispatcherPortlet portlet = new DispatcherPortlet() {
        @Override
        protected ApplicationContext createPortletApplicationContext(ApplicationContext parent) throws BeansException {
            GenericWebApplicationContext wac = new GenericWebApplicationContext();
            wac.registerBeanDefinition("controller", new RootBeanDefinition(MyController.class));
            wac.refresh();
            return wac;
        }
    };
    portlet.init(new MockPortletConfig());

    MockRenderRequest request = new MockRenderRequest(PortletMode.VIEW);
    MockRenderResponse response = new MockRenderResponse();
    portlet.render(request, response);
    assertEquals("test", response.getContentAsString());
}
PortletAnnotationControllerTests.java 文件源码 项目:spring4-understanding 阅读 23 收藏 0 点赞 0 评论 0
@Test
public void mavResolver() throws Exception {
    DispatcherPortlet portlet = new DispatcherPortlet() {
        @Override
        protected ApplicationContext createPortletApplicationContext(ApplicationContext parent) throws BeansException {
            GenericWebApplicationContext wac = new GenericWebApplicationContext();
            wac.registerBeanDefinition("controller",
                    new RootBeanDefinition(ModelAndViewResolverController.class));
            RootBeanDefinition adapterDef = new RootBeanDefinition(AnnotationMethodHandlerAdapter.class);
            adapterDef.getPropertyValues()
                    .add("customModelAndViewResolver", new MyModelAndViewResolver());
            wac.registerBeanDefinition("handlerAdapter", adapterDef);
            wac.refresh();
            return wac;
        }
    };
    portlet.init(new MockPortletConfig());

    MockRenderRequest request = new MockRenderRequest(PortletMode.VIEW);
    MockRenderResponse response = new MockRenderResponse();
    portlet.render(request, response);
}
DispatcherPortletTests.java 文件源码 项目:spring4-understanding 阅读 24 收藏 0 点赞 0 评论 0
@Test
public void portletModeMappingViewRenderRequestWithUnauthorizedUserRole() throws Exception {
    MockRenderRequest request = new MockRenderRequest();
    MockRenderResponse response = new MockRenderResponse();
    request.setPortletMode(PortletMode.VIEW);
    request.addUserRole("role3");
    request.setParameter("action", "not mapped");
    request.setParameter("myParam", "not mapped");
    complexDispatcherPortlet.doDispatch(request, response);
    Map<?, ?> model = (Map<?, ?>) request.getAttribute(ViewRendererServlet.MODEL_ATTRIBUTE);
    Exception exception = (Exception) model.get("exception");
    assertNotNull(exception);
    assertTrue(exception.getClass().equals(PortletSecurityException.class));
    InternalResourceView view = (InternalResourceView) request.getAttribute(ViewRendererServlet.VIEW_ATTRIBUTE);
    assertEquals("failed-default-1", view.getBeanName());
}
PortletStateTest.java 文件源码 项目:sakai 阅读 20 收藏 0 点赞 0 评论 0
public void testSerialization() throws IOException, ClassNotFoundException
{
    PortletState state = new PortletState("id");
    state.setPortletMode(PortletMode.VIEW);
    state.setWindowState(WindowState.MAXIMIZED);

    ByteArrayOutputStream bao = new ByteArrayOutputStream();
    ObjectOutputStream out = new ObjectOutputStream(bao);

    out.writeObject(state);

    ByteArrayInputStream bai = new ByteArrayInputStream(bao.toByteArray());
    ObjectInputStream in = new ObjectInputStream(bai);
    PortletState alter = (PortletState) in.readObject();

    assertEquals(state, alter);

}
SimplePortletStateEncoderTest.java 文件源码 项目:sakai 阅读 20 收藏 0 点赞 0 评论 0
public void testEncodeDecode()
{
    PortletState state = new PortletState("id");
    state.setAction(true);
    state.setSecure(true);
    state.setWindowState(WindowState.MAXIMIZED);
    state.setPortletMode(PortletMode.EDIT);

    String uriSafe = encoder.encode(state);
    PortletState read = encoder.decode(uriSafe);
    assertEquals(state.getId(), read.getId());
    assertEquals(state.isAction(), read.isAction());
    assertEquals(state.isSecure(), read.isSecure());
    assertEquals(state.getWindowState(), read.getWindowState());
    assertEquals(state.getPortletMode(), read.getPortletMode());
}
SimpleRSSPortlet.java 文件源码 项目:sakai 阅读 20 收藏 0 点赞 0 评论 0
/**
 * Get the feed content
 * @param request
 * @param response
 * @return Map of params or null if any required data is missing
 */
private SyndFeed getFeedContent(RenderRequest request, RenderResponse response) {

    SyndFeed feed;

    //check cache, otherwise get fresh
    //we use the feedUrl as the cacheKey
    String feedUrl = getConfiguredFeedUrl(request);
    if(StringUtils.isBlank(feedUrl)) {
        log.debug("No feed URL configured");
        doError("error.no.config", "error.heading.config", getPortletModeUrl(response, PortletMode.EDIT), request, response);
        return null;
    }

    String cacheKey = feedUrl;

    feed = feedCache.get(cacheKey);
    if(feed != null) {
        log.debug("Fetching data from feed cache for: " + cacheKey);
    } else {
        //get from remote
        feed = getRemoteFeed(feedUrl, request, response);
    }

    return feed;
}
DriverPortletConfigImpl.java 文件源码 项目:portals-pluto 阅读 16 收藏 0 点赞 0 评论 0
private HashSet<PortletMode> getPMList(String mimeType) {
   HashSet<PortletMode> pms = new HashSet<PortletMode>();

   pms.add(PortletMode.VIEW);       // all portlets support view

   // Add the portlet mode to the list 

   for (Supports s : portlet.getSupports()) {
      if (mimeType.equalsIgnoreCase(s.getMimeType())) {
         for (String pmname : s.getPortletModes()) {
            PortletMode pm = new PortletMode(pmname);
            pms.add(pm);
         }
      }
   }

   return pms;
}
RenderExecute.java 文件源码 项目:eterna 阅读 20 收藏 0 点赞 0 评论 0
public ModelExport execute(AppData data, Connection conn)
        throws ConfigurationException, SQLException, IOException
{
    WindowState state = data.renderRequest.getWindowState();
    if (!state.equals(WindowState.MINIMIZED))
    {
        PortletMode mode = data.renderRequest.getPortletMode();
        if (PortletMode.VIEW.equals(mode))
        {
            return this.view;
        }
        else if (PortletMode.EDIT.equals(mode))
        {
            return this.edit;
        }
        else if (PortletMode.HELP.equals(mode))
        {
            return this.help;
        }
        else
        {
            log.error("Unknown portlet mode: " + mode + ".");
        }
    }
    return null;
}
Portlet20AnnotationControllerTests.java 文件源码 项目:class-guard 阅读 27 收藏 0 点赞 0 评论 0
@Test
public void standardHandleMethod() throws Exception {
    DispatcherPortlet portlet = new DispatcherPortlet() {
        @Override
        protected ApplicationContext createPortletApplicationContext(ApplicationContext parent) throws BeansException {
            GenericWebApplicationContext wac = new GenericWebApplicationContext();
            wac.registerBeanDefinition("controller", new RootBeanDefinition(MyController.class));
            wac.refresh();
            return wac;
        }
    };
    portlet.init(new MockPortletConfig());

    MockRenderRequest request = new MockRenderRequest(PortletMode.VIEW);
    MockRenderResponse response = new MockRenderResponse();
    portlet.render(request, response);
    assertEquals("test", response.getContentAsString());
}
PortletURLTag168.java 文件源码 项目:portals-pluto 阅读 21 收藏 0 点赞 0 评论 0
/**
 * Provides a list of all static PortletMode available in the specifications by using introspection
 * 
 * @return Hashtable
 */
private static Hashtable<String, Object> getDefinedPortletModes() {
   Hashtable<String, Object> portletModes = new Hashtable<String, Object>();
   Field[] f = PortletMode.class.getDeclaredFields();

   for (int i = 0; i < f.length; i++) {
      if (f[i].getType().isAssignableFrom(javax.portlet.PortletMode.class)) {
         try {
            portletModes.put(f[i].get(f[i]).toString().toUpperCase(), f[i].get(f[i]));
         } catch (IllegalAccessException e) {
         }
      }
   }

   return portletModes;
}
PortletStateTest.java 文件源码 项目:sakai 阅读 18 收藏 0 点赞 0 评论 0
public void testSerialization() throws IOException, ClassNotFoundException
{
    PortletState state = new PortletState("id");
    state.setPortletMode(PortletMode.VIEW);
    state.setWindowState(WindowState.MAXIMIZED);

    ByteArrayOutputStream bao = new ByteArrayOutputStream();
    ObjectOutputStream out = new ObjectOutputStream(bao);

    out.writeObject(state);

    ByteArrayInputStream bai = new ByteArrayInputStream(bao.toByteArray());
    ObjectInputStream in = new ObjectInputStream(bai);
    PortletState alter = (PortletState) in.readObject();

    assertEquals(state, alter);

}
InvokeHeaderTest.java 文件源码 项目:portals-pluto 阅读 19 收藏 0 点赞 0 评论 0
@Test
public void invoke1b() throws Exception {
   meths.reset();
   PortletInvoker i = new PortletInvoker(ams, "portlet1");
   PortletMode mode = new PortletMode("CustomMode");
   req.setMode(mode);
   i.renderHeaders(req, resp);
   List<String> names = meths.getMethods();
   assertNotNull(names);
   assertEquals(3, names.size());
   List<String> soll = Arrays.asList(new String[] {
         Header1.class.getSimpleName() + "#header1a",
         Header1.class.getSimpleName() + "#header1b",
         Header1.class.getSimpleName() + "#header1c"
         });
   for (String name : names) {
      assertTrue(soll.contains(name));
   }
}
SimpleRSSPortlet.java 文件源码 项目:sakai 阅读 18 收藏 0 点赞 0 评论 0
/**
 * Get the feed content
 * @param request
 * @param response
 * @return Map of params or null if any required data is missing
 */
private SyndFeed getFeedContent(RenderRequest request, RenderResponse response) {

    SyndFeed feed;

    //check cache, otherwise get fresh
    //we use the feedUrl as the cacheKey
    String feedUrl = getConfiguredFeedUrl(request);
    if(StringUtils.isBlank(feedUrl)) {
        log.debug("No feed URL configured");
        doError("error.no.config", "error.heading.config", getPortletModeUrl(response, PortletMode.EDIT), request, response);
        return null;
    }

    String cacheKey = feedUrl;

    feed = feedCache.get(cacheKey);
    if(feed != null) {
        log.debug("Fetching data from feed cache for: " + cacheKey);
    } else {
        //get from remote
        feed = getRemoteFeed(feedUrl, request, response);
    }

    return feed;
}
SimplePortletStateEncoderTest.java 文件源码 项目:sakai 阅读 21 收藏 0 点赞 0 评论 0
public void testEncodeDecode()
{
    PortletState state = new PortletState("id");
    state.setAction(true);
    state.setSecure(true);
    state.setWindowState(WindowState.MAXIMIZED);
    state.setPortletMode(PortletMode.EDIT);

    String uriSafe = encoder.encode(state);
    PortletState read = encoder.decode(uriSafe);
    assertEquals(state.getId(), read.getId());
    assertEquals(state.isAction(), read.isAction());
    assertEquals(state.isSecure(), read.isSecure());
    assertEquals(state.getWindowState(), read.getWindowState());
    assertEquals(state.getPortletMode(), read.getPortletMode());
}
ReverseProxyIFramePortlet.java 文件源码 项目:reverse-web-proxy-portlet 阅读 22 收藏 0 点赞 0 评论 0
@Override
public void processAction(ActionRequest request, ActionResponse response)
        throws IOException, PortletException {

  String action = request.getParameter("action");

  if ("editPrefs".equals(action)) {
    PortletPreferences prefs = request.getPreferences();
    for (String key : prefs.getMap().keySet()) {
      String value = request.getParameter(key);
      prefs.setValue(key, value);
    }
    prefs.store();

  } else {
    String url = request.getParameter("URL");
    if (!StringUtils.isBlank(url)) {
      PortletMessaging.publish(request, IFrameGenericPortlet.IFRAME_SRC_URL, url.trim());
    }
  }

  response.setPortletMode(PortletMode.VIEW);
}
SearchUrlAction.java 文件源码 项目:flashlight-search 阅读 23 收藏 0 点赞 0 评论 0
/**
 * Returns a list of search URLs to be put in the request attributes
 *
 * @param themeDisplay The theme display
 * @param layout The current page
 * @return A list of search URLs to be put in the request attributes
 */
private List<SearchUrl> generateSearchUrl(HttpServletRequest request, ThemeDisplay themeDisplay, Layout layout) {
    LayoutTypePortlet layoutType = (LayoutTypePortlet) layout.getLayoutType();
    UnicodeProperties props = layoutType.getTypeSettingsProperties();

    return layoutType.getPortlets().stream()
        .filter(portlet -> portlet.getPortletName().equals(FlashlightSearchPortletKeys.PORTLET_NAME))
        .map(portletInstance -> {

            String columnId = StringPool.BLANK;
            for(Entry<String, String> entry : props.entrySet()) {
                if(entry.getValue().equals(portletInstance.getPortletId())) {
                    columnId = entry.getKey();
                    break;
                }
            }

            String portletUrl;

            try {
                portletUrl = this.portal.getLayoutFriendlyURL(layout, themeDisplay);
            } catch (PortalException e) {
                portletUrl = StringPool.BLANK;
                LOG.error(e);
            }

            SearchUrlRequestParameter[] params = new SearchUrlRequestParameter[] {
                new SearchUrlRequestParameter(PARAM_PORTLET_ID, portletInstance.getPortletId()),
                new SearchUrlRequestParameter(PARAM_PORTLET_LIFECYCLE, LIFECYCLE_RENDER),
                new SearchUrlRequestParameter(PARAM_PORTLET_MODE, PortletMode.VIEW.toString()),
                new SearchUrlRequestParameter(PARAM_PORTLET_COLUMN_ID, columnId),
                new SearchUrlRequestParameter(PARAM_PORTLET_COLUMN_COUNT, Integer.toString(layoutType.getNumOfColumns()))
            };

            String portletNamespace = this.portal.getPortletNamespace(portletInstance.getPortletId());

            return new SearchUrl(layout, portletUrl, params, portletNamespace);
        })
        .collect(Collectors.toList());
}
LookupDossierResult.java 文件源码 项目:opencps-v2 阅读 21 收藏 0 点赞 0 评论 0
@Override
public void render(
    RenderRequest renderRequest, RenderResponse renderResponse)
    throws IOException, PortletException {

    ThemeDisplay themeDisplay =
        (ThemeDisplay) renderRequest.getAttribute(WebKeys.THEME_DISPLAY);
    PortletDisplay portletDisplay = themeDisplay.getPortletDisplay();
    String portletId = portletDisplay.getId();

    JSONObject urlObject = JSONFactoryUtil.createJSONObject();
    JSONObject apiObject = JSONFactoryUtil.createJSONObject();

    // url
    PortletURL dossierInfoURL = PortletURLFactoryUtil.create(
        renderRequest, portletId, themeDisplay.getPlid(),
        PortletRequest.RENDER_PHASE);

    dossierInfoURL.setPortletMode(PortletMode.VIEW);
    dossierInfoURL.setWindowState(LiferayWindowState.EXCLUSIVE);
    dossierInfoURL.setParameter(
        "mvcPath", "/templates/lookup_dossier/dossierinfo.ftl");

    urlObject.put("dossierinfo", dossierInfoURL.toString());

    // api
    apiObject.put("server", themeDisplay.getPortalURL() + "/o/rest/v2");
    apiObject.put(
        "portletNamespace",
        themeDisplay.getPortletDisplay().getNamespace());

    // set varible
    renderRequest.setAttribute("ajax", urlObject);
    renderRequest.setAttribute("api", apiObject);

    super.render(renderRequest, renderResponse);

}
RegisterPorltet.java 文件源码 项目:opencps-v2 阅读 19 收藏 0 点赞 0 评论 0
@Override
public void render(
    RenderRequest renderRequest, RenderResponse renderResponse)
    throws IOException, PortletException {

    ThemeDisplay themeDisplay =
        (ThemeDisplay) renderRequest.getAttribute(WebKeys.THEME_DISPLAY);
    PortletDisplay portletDisplay = themeDisplay.getPortletDisplay();
    String portletId = portletDisplay.getId();

    JSONObject urlObject = JSONFactoryUtil.createJSONObject();
    JSONObject apiObject = JSONFactoryUtil.createJSONObject();

    // url
    PortletURL registerResultURL = PortletURLFactoryUtil.create(
        renderRequest, portletId, themeDisplay.getPlid(),
        PortletRequest.RENDER_PHASE);

    registerResultURL.setPortletMode(PortletMode.VIEW);
    registerResultURL.setWindowState(LiferayWindowState.EXCLUSIVE);
    registerResultURL.setParameter(
        "mvcPath", "/templates/applicant/register_result.ftl");

    urlObject.put("register_result", registerResultURL.toString());

    // api
    apiObject.put("server", themeDisplay.getPortalURL() + "/o/rest/v2");
    apiObject.put(
        "portletNamespace",
        themeDisplay.getPortletDisplay().getNamespace());

    // set varible
    renderRequest.setAttribute("ajax", urlObject);
    renderRequest.setAttribute("api", apiObject);

    super.render(renderRequest, renderResponse);

}
ForgottenAccount.java 文件源码 项目:opencps-v2 阅读 22 收藏 0 点赞 0 评论 0
@Override
public void render(
    RenderRequest renderRequest, RenderResponse renderResponse)
    throws IOException, PortletException {

    ThemeDisplay themeDisplay =
        (ThemeDisplay) renderRequest.getAttribute(WebKeys.THEME_DISPLAY);
    PortletDisplay portletDisplay = themeDisplay.getPortletDisplay();
    String portletId = portletDisplay.getId();

    JSONObject urlObject = JSONFactoryUtil.createJSONObject();
    JSONObject apiObject = JSONFactoryUtil.createJSONObject();

    // url
    PortletURL confirmPasswordURL = PortletURLFactoryUtil.create(
        renderRequest, portletId, themeDisplay.getPlid(),
        PortletRequest.RENDER_PHASE);

    confirmPasswordURL.setPortletMode(PortletMode.VIEW);
    confirmPasswordURL.setWindowState(LiferayWindowState.EXCLUSIVE);
    confirmPasswordURL.setParameter(
        "mvcPath", "/templates/applicant/confirm_password.ftl");

    urlObject.put("confirm_password", confirmPasswordURL.toString());

    // api
    apiObject.put("server", themeDisplay.getPortalURL() + "/o/rest/v2");
    apiObject.put(
        "portletNamespace",
        themeDisplay.getPortletDisplay().getNamespace());

    // set varible
    renderRequest.setAttribute("ajax", urlObject);
    renderRequest.setAttribute("api", apiObject);

    super.render(renderRequest, renderResponse);

}
ServiceInfoLookup.java 文件源码 项目:opencps-v2 阅读 18 收藏 0 点赞 0 评论 0
@Override
public void render(
    RenderRequest renderRequest, RenderResponse renderResponse)
    throws IOException, PortletException {

    ThemeDisplay themeDisplay =
        (ThemeDisplay) renderRequest.getAttribute(WebKeys.THEME_DISPLAY);
    PortletDisplay portletDisplay = themeDisplay.getPortletDisplay();
    String portletId = portletDisplay.getId();

    JSONObject urlObject = JSONFactoryUtil.createJSONObject();
    JSONObject apiObject = JSONFactoryUtil.createJSONObject();

    // url
    PortletURL serviceInfoLookupURL = PortletURLFactoryUtil.create(
        renderRequest, portletId, themeDisplay.getPlid(),
        PortletRequest.RENDER_PHASE);

    serviceInfoLookupURL.setPortletMode(PortletMode.VIEW);
    serviceInfoLookupURL.setWindowState(LiferayWindowState.EXCLUSIVE);
    serviceInfoLookupURL.setParameter(
        "mvcPath", "/templates/homepage/serviceinfo_lookup.ftl");

    urlObject.put("serviceinfo_lookup", serviceInfoLookupURL.toString());

    // api
    apiObject.put("server", themeDisplay.getPortalURL() + "/o/rest/v2");
    apiObject.put(
        "portletNamespace",
        themeDisplay.getPortletDisplay().getNamespace());

    // set varible
    renderRequest.setAttribute("ajax", urlObject);
    renderRequest.setAttribute("api", apiObject);

    super.render(renderRequest, renderResponse);

}
ConfirmAccountPortlet.java 文件源码 项目:opencps-v2 阅读 21 收藏 0 点赞 0 评论 0
@Override
public void render(
    RenderRequest renderRequest, RenderResponse renderResponse)
    throws IOException, PortletException {

    ThemeDisplay themeDisplay =
        (ThemeDisplay) renderRequest.getAttribute(WebKeys.THEME_DISPLAY);
    PortletDisplay portletDisplay = themeDisplay.getPortletDisplay();
    String portletId = portletDisplay.getId();

    JSONObject urlObject = JSONFactoryUtil.createJSONObject();
    JSONObject apiObject = JSONFactoryUtil.createJSONObject();

    // url
    PortletURL registerResultURL = PortletURLFactoryUtil.create(
        renderRequest, portletId, themeDisplay.getPlid(),
        PortletRequest.RENDER_PHASE);

    registerResultURL.setPortletMode(PortletMode.VIEW);
    registerResultURL.setWindowState(LiferayWindowState.EXCLUSIVE);
    registerResultURL.setParameter(
        "mvcPath", "/templates/applicant/register_result.ftl");

    urlObject.put("register_result", registerResultURL.toString());

    // api
    apiObject.put("server", themeDisplay.getPortalURL() + "/o/rest/v2");
    apiObject.put(
        "portletNamespace",
        themeDisplay.getPortletDisplay().getNamespace());

    // set varible
    renderRequest.setAttribute("ajax", urlObject);
    renderRequest.setAttribute("api", apiObject);

    super.render(renderRequest, renderResponse);

}
DossierLookup.java 文件源码 项目:opencps-v2 阅读 17 收藏 0 点赞 0 评论 0
@Override
public void render(
    RenderRequest renderRequest, RenderResponse renderResponse)
    throws IOException, PortletException {

    ThemeDisplay themeDisplay =
        (ThemeDisplay) renderRequest.getAttribute(WebKeys.THEME_DISPLAY);
    PortletDisplay portletDisplay = themeDisplay.getPortletDisplay();
    String portletId = portletDisplay.getId();

    JSONObject urlObject = JSONFactoryUtil.createJSONObject();
    JSONObject apiObject = JSONFactoryUtil.createJSONObject();

    // url
    PortletURL dossierLookupURL = PortletURLFactoryUtil.create(
        renderRequest, portletId, themeDisplay.getPlid(),
        PortletRequest.RENDER_PHASE);

    dossierLookupURL.setPortletMode(PortletMode.VIEW);
    dossierLookupURL.setWindowState(LiferayWindowState.EXCLUSIVE);
    dossierLookupURL.setParameter(
        "mvcPath", "/templates/homepage/dossier_lookup.ftl");

    urlObject.put("dossier_lookup", dossierLookupURL.toString());

    // api
    apiObject.put("server", themeDisplay.getPortalURL() + "/o/rest/v2");
    apiObject.put(
        "portletNamespace",
        themeDisplay.getPortletDisplay().getNamespace());

    // set varible
    renderRequest.setAttribute("ajax", urlObject);
    renderRequest.setAttribute("api", apiObject);

    super.render(renderRequest, renderResponse);

}
ServiceSearchPortlet.java 文件源码 项目:opencps-v2 阅读 29 收藏 0 点赞 0 评论 0
public void render(RenderRequest renderRequest, RenderResponse renderResponse)
        throws IOException, PortletException {

    ThemeDisplay themeDisplay = (ThemeDisplay) renderRequest.getAttribute(WebKeys.THEME_DISPLAY);
    PortletDisplay portletDisplay = themeDisplay.getPortletDisplay();
    String portletId = portletDisplay.getId();

    JSONObject urlObject = JSONFactoryUtil.createJSONObject();
    JSONObject apiObject = JSONFactoryUtil.createJSONObject();

    // url
    PortletURL dossierLookupURL = PortletURLFactoryUtil.create(renderRequest, portletId, themeDisplay.getPlid(),
            PortletRequest.RENDER_PHASE);

    dossierLookupURL.setPortletMode(PortletMode.VIEW);
    dossierLookupURL.setWindowState(LiferayWindowState.EXCLUSIVE);
    dossierLookupURL.setParameter("mvcPath", "/templates/homepage/search_serviceinfo.ftl");

    urlObject.put("dossier_lookup", dossierLookupURL.toString());

    // api
    apiObject.put("server", themeDisplay.getPortalURL() + "/o/rest/v2");
    apiObject.put("portletNamespace", themeDisplay.getPortletDisplay().getNamespace());

    // set varible
    renderRequest.setAttribute("ajax", urlObject);
    renderRequest.setAttribute("api", apiObject);

    super.render(renderRequest, renderResponse);

}
DossierLookupPortlet.java 文件源码 项目:opencps-v2 阅读 23 收藏 0 点赞 0 评论 0
@Override
public void render(RenderRequest renderRequest, RenderResponse renderResponse)
        throws IOException, PortletException {

    ThemeDisplay themeDisplay = (ThemeDisplay) renderRequest.getAttribute(WebKeys.THEME_DISPLAY);
    PortletDisplay portletDisplay = themeDisplay.getPortletDisplay();
    String portletId = portletDisplay.getId();

    JSONObject urlObject = JSONFactoryUtil.createJSONObject();
    JSONObject apiObject = JSONFactoryUtil.createJSONObject();

    // url
    PortletURL dossierLookupURL = PortletURLFactoryUtil.create(renderRequest, portletId, themeDisplay.getPlid(),
            PortletRequest.RENDER_PHASE);

    dossierLookupURL.setPortletMode(PortletMode.VIEW);
    dossierLookupURL.setWindowState(LiferayWindowState.EXCLUSIVE);
    dossierLookupURL.setParameter("mvcPath", "/templates/homepage/dossier_lookup.ftl");

    urlObject.put("dossier_lookup", dossierLookupURL.toString());

    // api
    apiObject.put("server", themeDisplay.getPortalURL() + "/o/rest/v2");
    apiObject.put("portletNamespace", themeDisplay.getPortletDisplay().getNamespace());

    // set varible
    renderRequest.setAttribute("ajax", urlObject);
    renderRequest.setAttribute("api", apiObject);

    super.render(renderRequest, renderResponse);

}
AnnotationMethodHandlerAdapter.java 文件源码 项目:spring4-understanding 阅读 22 收藏 0 点赞 0 评论 0
public void initStandardMapping(String[] modes, RequestMethod[] methods, String[] params, String[] headers) {
    for (String mode : modes) {
        this.modes.add(new PortletMode(mode));
    }
    for (RequestMethod method : methods) {
        this.methods.add(method.name());
    }
    this.params = StringUtils.mergeStringArrays(this.params, params);
    this.headers = StringUtils.mergeStringArrays(this.headers, headers);
}
DefaultAnnotationHandlerMapping.java 文件源码 项目:spring4-understanding 阅读 24 收藏 0 点赞 0 评论 0
/**
 * Register all handlers specified in the Portlet mode map for the corresponding modes.
 * @throws org.springframework.beans.BeansException if the handler couldn't be registered
 */
protected void detectHandlers() throws BeansException {
    ApplicationContext context = getApplicationContext();
    String[] beanNames = context.getBeanNamesForType(Object.class);
    for (String beanName : beanNames) {
        Class<?> handlerType = context.getType(beanName);
        RequestMapping mapping = context.findAnnotationOnBean(beanName, RequestMapping.class);
        if (mapping != null) {
            // @RequestMapping found at type level
            String[] modeKeys = mapping.value();
            String[] params = mapping.params();
            boolean registerHandlerType = true;
            if (modeKeys.length == 0 || params.length == 0) {
                registerHandlerType = !detectHandlerMethods(handlerType, beanName, mapping);
            }
            if (registerHandlerType) {
                AbstractParameterMappingPredicate predicate = new TypeLevelMappingPredicate(
                        params, mapping.headers(), mapping.method());
                for (String modeKey : modeKeys) {
                    registerHandler(new PortletMode(modeKey), beanName, predicate);
                }
            }
        }
        else if (AnnotationUtils.findAnnotation(handlerType, Controller.class) != null) {
            detectHandlerMethods(handlerType, beanName, mapping);
        }
    }
}
PortletModeParameterHandlerMapping.java 文件源码 项目:spring4-understanding 阅读 17 收藏 0 点赞 0 评论 0
/**
 * Register all handlers specified in the Portlet mode map for the corresponding modes.
 * @param portletModeParameterMap Map with mode names as keys and parameter Maps as values
 */
protected void registerHandlersByModeAndParameter(Map<String, Map<String, ?>> portletModeParameterMap) {
    Assert.notNull(portletModeParameterMap, "'portletModeParameterMap' must not be null");
    for (Map.Entry<String, Map<String, ?>> entry : portletModeParameterMap.entrySet()) {
        PortletMode mode = new PortletMode(entry.getKey());
        registerHandler(mode, entry.getValue());
    }
}
PortletModeParameterHandlerMapping.java 文件源码 项目:spring4-understanding 阅读 20 收藏 0 点赞 0 评论 0
/**
 * Register the given handler instance for the given PortletMode and parameter value,
 * under an appropriate lookup key.
 * @param mode the PortletMode for which this mapping is valid
 * @param parameter the parameter value to which this handler is mapped
 * @param handler the handler instance bean
 * @throws BeansException if the handler couldn't be registered
 * @throws IllegalStateException if there is a conflicting handler registered
 * @see #registerHandler(Object, Object)
 */
protected void registerHandler(PortletMode mode, String parameter, Object handler)
        throws BeansException, IllegalStateException {

    // Check for duplicate parameter values across all portlet modes.
    if (!this.allowDuplicateParameters && this.parametersUsed.contains(parameter)) {
        throw new IllegalStateException(
                "Duplicate entries for parameter [" + parameter + "] in different Portlet modes");
    }
    this.parametersUsed.add(parameter);

    registerHandler(new PortletModeParameterLookupKey(mode, parameter), handler);
}
PortletModeParameterHandlerMapping.java 文件源码 项目:spring4-understanding 阅读 18 收藏 0 点赞 0 评论 0
/**
 * Returns a lookup key that combines the current PortletMode and the current
 * value of the specified parameter.
 * @see javax.portlet.PortletRequest#getPortletMode()
 * @see #setParameterName
 */
@Override
protected PortletModeParameterLookupKey getLookupKey(PortletRequest request) throws Exception {
    PortletMode mode = request.getPortletMode();
    String parameter = request.getParameter(this.parameterName);
    return new PortletModeParameterLookupKey(mode, parameter);
}


问题


面经


文章

微信
公众号

扫码关注公众号