org.springframework.context.i18n.SimpleLocaleContext#javax.portlet.PortletRequest源码实例Demo

下面列出了org.springframework.context.i18n.SimpleLocaleContext#javax.portlet.PortletRequest 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

protected TestResult checkParameters(PortletContext context,
                                     PortletRequest request,
                                     PortletResponse response)
throws IOException, PortletException {

	// Dispatch to the companion servlet: call checkParameters().
	StringBuffer buffer = new StringBuffer();
	buffer.append(SERVLET_PATH).append("?")
			.append(KEY_TARGET).append("=").append(TARGET_PARAMS)
			.append("&").append(KEY_A).append("=").append(VALUE_A)
			.append("&").append(KEY_B).append("=").append(VALUE_B);

	if (LOG.isDebugEnabled()) {
		LOG.debug("Dispatching to: " + buffer.toString());
	}
    PortletRequestDispatcher dispatcher = context.getRequestDispatcher(
    		buffer.toString());
    dispatcher.include((RenderRequest) request, (RenderResponse) response);

	// Retrieve test result returned by the companion servlet.
    TestResult result = (TestResult) request.getAttribute(RESULT_KEY);
	request.removeAttribute(RESULT_KEY);
    return result;
}
 
private String determineDefaultPhase(Method handlerMethod) {
	if (void.class != handlerMethod.getReturnType()) {
		return PortletRequest.RENDER_PHASE;
	}
	for (Class<?> argType : handlerMethod.getParameterTypes()) {
		if (ActionRequest.class.isAssignableFrom(argType) || ActionResponse.class.isAssignableFrom(argType) ||
				InputStream.class.isAssignableFrom(argType) || Reader.class.isAssignableFrom(argType)) {
			return PortletRequest.ACTION_PHASE;
		}
		else if (RenderRequest.class.isAssignableFrom(argType) || RenderResponse.class.isAssignableFrom(argType) ||
				OutputStream.class.isAssignableFrom(argType) || Writer.class.isAssignableFrom(argType)) {
			return PortletRequest.RENDER_PHASE;
		}
		else if (ResourceRequest.class.isAssignableFrom(argType) || ResourceResponse.class.isAssignableFrom(argType)) {
			return PortletRequest.RESOURCE_PHASE;
		}
		else if (EventRequest.class.isAssignableFrom(argType) || EventResponse.class.isAssignableFrom(argType)) {
			return PortletRequest.EVENT_PHASE;
		}
	}
	return "";
}
 
源代码3 项目: portals-pluto   文件: PreferenceCommonTest.java
protected TestResult checkSetPreferencesReturnsFirst(PortletRequest request) {
    TestResult result = new TestResult();
    result.setDescription("Ensure the first value set to a given "
    		+ "preference is returned first by PortletPreferences.getValue().");
    result.setSpecPLT("14.1");

    PortletPreferences preferences = request.getPreferences();
    try {
        preferences.setValues("TEST", new String[] { "FIRST", "SECOND" });
    } catch (ReadOnlyException ex) {
    	TestUtils.failOnException("Unable to set preference values.", ex, result);
    	return result;
    }

    String value = preferences.getValue("TEST", DEF_VALUE);
    if (value != null && value.equals("FIRST")) {
    	result.setReturnCode(TestResult.PASSED);
    } else {
    	TestUtils.failOnAssertion("preference value", value, "FIRST", result);
    }
    return result;
}
 
源代码4 项目: sakai   文件: PortalUser.java
public String getFirstName(PortletRequest request) {
	fixPortalType(request);
	String firstName = null;
	Map userInfo = (Map) request.getAttribute(PortletRequest.USER_INFO);

	switch (portalType) {
		case GRIDSPHERE:
			String fullName = getGridsphereFullName(request);
			firstName = fullName.trim().substring(0, fullName.indexOf(" "));
			break;
		case PLUTO:
		case UPORTAL:
			if (userInfo != null) {
				firstName = (String) userInfo.get("user.name.given");
			}
			break;
	}
	log.debug("First Name={}", firstName);
	return firstName;
}
 
@Test
public void testDecoratedNativeRequest() {
	MockRenderRequest portletRequest = new MockRenderRequest();
	MockRenderResponse portletResponse = new MockRenderResponse();
	PortletRequest decoratedRequest = new PortletRequestWrapper(portletRequest);
	PortletResponse decoratedResponse = new PortletResponseWrapper(portletResponse);
	PortletWebRequest request = new PortletWebRequest(decoratedRequest, decoratedResponse);
	assertSame(decoratedRequest, request.getNativeRequest());
	assertSame(decoratedRequest, request.getNativeRequest(PortletRequest.class));
	assertSame(portletRequest, request.getNativeRequest(RenderRequest.class));
	assertSame(portletRequest, request.getNativeRequest(MockRenderRequest.class));
	assertNull(request.getNativeRequest(MultipartRequest.class));
	assertSame(decoratedResponse, request.getNativeResponse());
	assertSame(decoratedResponse, request.getNativeResponse(PortletResponse.class));
	assertSame(portletResponse, request.getNativeResponse(RenderResponse.class));
	assertSame(portletResponse, request.getNativeResponse(MockRenderResponse.class));
	assertNull(request.getNativeResponse(MultipartRequest.class));
}
 
源代码6 项目: sakai   文件: PortletHelper.java
@SuppressWarnings("unchecked")
public static String getEmail(PortletRequest request) {
	String email = null;
	Map<String,String> userInfo = (Map<String,String>) request.getAttribute(PortletRequest.USER_INFO);

	switch (lookupPortalType(request)) {
		case GRIDSPHERE:
			if (userInfo != null) {
				email = userInfo.get("user.email");
			}
			break;
		case PLUTO:
		case UPORTAL:
			if (userInfo != null) {
				email = userInfo.get("user.home-info.online.email");
			}
	}

	debugPrint(request,"EMail="+email);
	return email;
}
 
/**
 * Actually resolve the given exception that got thrown during on handler execution,
 * returning a ModelAndView that represents a specific error page if appropriate.
 * @param request current portlet request
 * @param response current portlet response
 * @param handler the executed handler, or null if none chosen at the time of
 * the exception (for example, if multipart resolution failed)
 * @param ex the exception that got thrown during handler execution
 * @return a corresponding ModelAndView to forward to, or null for default processing
 */
@Override
protected ModelAndView doResolveException(
		PortletRequest request, MimeResponse response, Object handler, Exception ex) {

	// Log exception, both at debug log level and at warn level, if desired.
	if (logger.isDebugEnabled()) {
		logger.debug("Resolving exception from handler [" + handler + "]: " + ex);
	}
	logException(ex, request);

	// Expose ModelAndView for chosen error view.
	String viewName = determineViewName(ex, request);
	if (viewName != null) {
		return getModelAndView(viewName, ex, request);
	}
	else {
		return null;
	}
}
 
源代码8 项目: spring4-understanding   文件: PortletUtils.java
/**
 * Return a map containing all parameters with the given prefix.
 * Maps single values to String and multiple values to String array.
 * <p>For example, with a prefix of "spring_", "spring_param1" and
 * "spring_param2" result in a Map with "param1" and "param2" as keys.
 * <p>Similar to portlet
 * {@link javax.portlet.PortletRequest#getParameterMap()},
 * but more flexible.
 * @param request portlet request in which to look for parameters
 * @param prefix the beginning of parameter names
 * (if this is {@code null} or the empty string, all parameters will match)
 * @return map containing request parameters <b>without the prefix</b>,
 * containing either a String or a String array as values
 * @see javax.portlet.PortletRequest#getParameterNames
 * @see javax.portlet.PortletRequest#getParameterValues
 * @see javax.portlet.PortletRequest#getParameterMap
 */
public static Map<String, Object> getParametersStartingWith(PortletRequest request, String prefix) {
	Assert.notNull(request, "Request must not be null");
	Enumeration<String> paramNames = request.getParameterNames();
	Map<String, Object> params = new TreeMap<String, Object>();
	if (prefix == null) {
		prefix = "";
	}
	while (paramNames != null && paramNames.hasMoreElements()) {
		String paramName = paramNames.nextElement();
		if ("".equals(prefix) || paramName.startsWith(prefix)) {
			String unprefixed = paramName.substring(prefix.length());
			String[] values = request.getParameterValues(paramName);
			if (values == null || values.length == 0) {
				// Do nothing, no values found at all.
			}
			else if (values.length > 1) {
				params.put(unprefixed, values);
			}
			else {
				params.put(unprefixed, values[0]);
			}
		}
	}
	return params;
}
 
源代码9 项目: sakai   文件: PortletHelper.java
public static void debugPrint(PortletRequest request, String line)
{
	if ( line == null ) return;
	line = line.replaceAll("<","&lt;").replaceAll(">","&gt;");

	PortletSession pSession = request.getPortletSession(true);
	String debugOut = null;
	try {
		debugOut = (String) pSession.getAttribute("debug.print");
	} catch (Throwable t) {
		debugOut = null;
	}
	if ( debugOut == null ) {
		debugOut = line;
	} else {
		debugOut = debugOut + "\n" + line;
	}
	pSession.setAttribute("debug.print",debugOut);
}
 
源代码10 项目: sakai   文件: PortletHelper.java
@SuppressWarnings("unchecked")
public static String getEmail(PortletRequest request) {
	String email = null;
	Map<String,String> userInfo = (Map<String,String>) request.getAttribute(PortletRequest.USER_INFO);

	switch (lookupPortalType(request)) {
		case GRIDSPHERE:
			if (userInfo != null) {
				email = userInfo.get("user.email");
			}
			break;
		case PLUTO:
		case UPORTAL:
			if (userInfo != null) {
				email = userInfo.get("user.home-info.online.email");
			}
	}

	debugPrint(request,"EMail="+email);
	return email;
}
 
@Override
public void setContentType(String contentType) {
   // The content type is set by Pluto for the render & header phases
   if (!isClosed()) { 
      if (getLifecycle().equals(PortletRequest.RESOURCE_PHASE)) {
         getServletResponse().setContentType(contentType);
      } else {
         String type = getServletResponse().getContentType();
         if (type == null) {
            // default MIME type for Pluto
            type = "text/html";
         } else {
            // ignore charset parameter
            type = type.replaceAll("([^;]*).*", "$1");
         }
         if (!type.equals(contentType) && !contentType.matches("\\s*(?:\\*|\\*/\\s*\\*)\\s*")) {
            throw new IllegalArgumentException("Invalid content type: " + contentType);
         }
      }
   }
}
 
源代码12 项目: portals-pluto   文件: HeaderPortlet.java
@Override
protected void doView(RenderRequest req, RenderResponse resp) throws PortletException, IOException {
   
   if (isDebug) {
      StringBuilder txt = new StringBuilder(128);
      txt.append("Rendering. ");
      txt.append("RENDER_PART: ");
      txt.append((String)req.getAttribute(PortletRequest.RENDER_PART));
      logger.debug(txt.toString());
   }

   resp.setContentType("text/html");

   PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher("/WEB-INF/jsp/view-hdp.jsp");
   rd.include(req, resp);

}
 
源代码13 项目: portals-pluto   文件: SecurityMappingTest.java
protected TestResult checkIsUserInUnmappedRole(PortletRequest request) {
    TestResult result = isUserLoggedIn(request);
    result.setDescription("Test if user is in unmapped role");
    if (result.getReturnCode() == TestResult.WARNING) {
        return result;
    }

    ExpectedResults expectedResults = ExpectedResults.getInstance();
    String role = expectedResults.getUnmappedSecurityRole();
    if (request.isUserInRole(role)) {
    	result.setReturnCode(TestResult.PASSED);
    } else {
    	result.setReturnCode(TestResult.WARNING);
    	result.setResultMessage("User is not in the expected role: " + role
    			+ ". This may be due to misconfiuration.");
    }
    return result;
}
 
源代码14 项目: spring4-understanding   文件: PortletUtilsTests.java
@Test
public void testSetSessionAttributeWithExistingSessionAndSpecificScope() throws Exception {
	PortletSession session = mock(PortletSession.class);
	PortletRequest request = mock(PortletRequest.class);
	given(request.getPortletSession()).willReturn(session); // must not create Session ...
	PortletUtils.setSessionAttribute(request, "foo", "foo", PortletSession.APPLICATION_SCOPE);
	verify(session).setAttribute("foo", "foo", PortletSession.APPLICATION_SCOPE);
}
 
/**
 * Get a boolean parameter, with a fallback value. Never throws an exception.
 * Can pass a distinguished value as default to enable checks of whether it was supplied.
 * <p>Accepts "true", "on", "yes" (any case) and "1" as values for true;
 * treats every other non-empty value as false (i.e. parses leniently).
 * @param request current portlet request
 * @param name the name of the parameter
 * @param defaultVal the default value to use as fallback
 */
public static boolean getBooleanParameter(PortletRequest request, String name, boolean defaultVal) {
	if (request.getParameter(name) == null) {
		return defaultVal;
	}
	try {
		return getRequiredBooleanParameter(request, name);
	}
	catch (PortletRequestBindingException ex) {
		return defaultVal;
	}
}
 
源代码16 项目: opencps-v2   文件: ConfirmAccountPortlet.java
@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);

}
 
源代码17 项目: opencps-v2   文件: ServiceInfoIndexer.java
@Override
protected Summary doGetSummary(Document document, Locale locale, String snippet, PortletRequest portletRequest,
		PortletResponse portletResponse) throws Exception {
	Summary summary = createSummary(document);

	summary.setMaxContentLength(QueryUtil.ALL_POS);

	return summary;
}
 
@Test
public void testRemoveSessionScopedAttributeDoesNotForceCreationOfSession() throws Exception {
	PortletRequest request = mock(PortletRequest.class);

	PortletRequestAttributes attrs = new PortletRequestAttributes(request);
	attrs.removeAttribute(KEY, RequestAttributes.SCOPE_SESSION);

	verify(request).getPortletSession(false);
}
 
源代码19 项目: opencps-v2   文件: RegistrationFormIndexer.java
@Override
protected Summary doGetSummary(Document document, Locale locale, String snippet, PortletRequest portletRequest,
		PortletResponse portletResponse) throws Exception {
	Summary summary = createSummary(document);

	summary.setMaxContentLength(QueryUtil.ALL_POS);

	return summary;
}
 
源代码20 项目: sakai   文件: SimpleRSSPortlet.java
/**
 * Helper to check if a preference is locked (ie readonly). This may be set by a channel config to restrict access.
 * 
 * @param request
 * @return
 */
private boolean isPrefLocked(PortletRequest request, String prefName) {
	PortletPreferences prefs = request.getPreferences();
	try {
		return prefs.isReadOnly(prefName);
	} catch (IllegalArgumentException e){
		log.debug("Preference does not exist: " + prefName);
		return false;
	}
}
 
/**
 * Get an array of boolean parameters, return an empty array if not found.
 * <p>Accepts "true", "on", "yes" (any case) and "1" as values for true;
 * treats every other non-empty value as false (i.e. parses leniently).
 * @param request current portlet request
 * @param name the name of the parameter with multiple possible values
 */
public static boolean[] getBooleanParameters(PortletRequest request, String name) {
	try {
		return getRequiredBooleanParameters(request, name);
	}
	catch (PortletRequestBindingException ex) {
		return new boolean[0];
	}
}
 
源代码22 项目: portals-pluto   文件: ResourceBundleTest.java
protected TestResult checkGetNames(PortletConfig config,
                                   PortletRequest request) {
    TestResult result = new TestResult();
    result.setDescription("Retrieve the property names and ensure that "
    		+ "the required keys are present.");

    List<String> requiredKeys = new ArrayList<String>();
    requiredKeys.add(TITLE_KEY);
    requiredKeys.add(SHORT_TITLE_KEY);
    requiredKeys.add(KEYWORDS_KEY);

    ResourceBundle bundle = config.getResourceBundle(request.getLocale());
    if (bundle == null) {
    	result.setReturnCode(TestResult.WARNING);
    	result.setResultMessage("A function upon which this test depends "
    			+ "failed to execute as expected. "
    			+ "Check the other test results in this test suite.");
    	return result;
    }

    for (Enumeration<String> en = bundle.getKeys(); 
    			en.hasMoreElements(); ) {
        String key = (String) en.nextElement();
        requiredKeys.remove(key);
    }

    if (requiredKeys.isEmpty()) {
    	result.setReturnCode(TestResult.PASSED);
    } else {
    	result.setReturnCode(TestResult.FAILED);
        StringBuffer buffer = new StringBuffer();
        for (Iterator<String> it = requiredKeys.iterator(); it.hasNext(); ) {
        	buffer.append(it.next()).append(", ");
        }
        result.setResultMessage("Required keys [" + buffer.toString()
        		+ "] are missing in the resource bundle.");
    }
    return result;
}
 
源代码23 项目: portals-pluto   文件: MiscTest.java
/**
 * Test to ensure that the basic modes are supported.
 * @todo Enhance to check for custom modes.
 * @param req
 * @return
 */
protected TestResult checkSupportedModes(PortletRequest request)  {
    TestResult result = new TestResult();
    result.setDescription("Ensure the expected portlet modes are returned.");

    List<PortletMode> requiredPortletModes = new ArrayList<PortletMode>();
    requiredPortletModes.add(PortletMode.VIEW);
    requiredPortletModes.add(PortletMode.EDIT);
    requiredPortletModes.add(PortletMode.HELP);

    for (Enumeration<PortletMode> en = 
    		request.getPortalContext().getSupportedPortletModes();
    		en.hasMoreElements(); ) {
        PortletMode portletMode = en.nextElement();
        requiredPortletModes.remove(portletMode);
    }

    if (requiredPortletModes.isEmpty()) {
    	result.setReturnCode(TestResult.PASSED);
    } else {
    	result.setReturnCode(TestResult.FAILED);
    	StringBuffer buffer = new StringBuffer();
    	for (Iterator<PortletMode> it = requiredPortletModes.iterator();
    			it.hasNext(); ) {
    		buffer.append(it.next()).append(", ");
    	}
    	result.setResultMessage("Required portlet modes ["
    			+ buffer.toString() + "] are not supported.");
    }
    return result;
}
 
源代码24 项目: opencps-v2   文件: RegistrationIndexer.java
@Override
protected Summary doGetSummary(Document document, Locale locale, String snippet, PortletRequest portletRequest,
		PortletResponse portletResponse) throws Exception {
	Summary summary = createSummary(document);

	summary.setMaxContentLength(QueryUtil.ALL_POS);

	return summary;
}
 
public void admin(PortletRequestContext context, PortletRequest request, PortletResponse response)
throws IOException, PortletException, PortletContainerException {
    if (LOG.isDebugEnabled()) {
        LOG.debug("Performing Admin Invocation.");
    }

    invoke(context, request, response, PortletInvokerService.METHOD_ADMIN);
}
 
源代码26 项目: opencps-v2   文件: DossierActionSyncIndexer.java
@Override
protected Summary doGetSummary(Document document, Locale locale, String snippet, PortletRequest portletRequest,
		PortletResponse portletResponse) throws Exception {
	Summary summary = createSummary(document);

	summary.setMaxContentLength(QueryUtil.ALL_POS);

	return summary;
}
 
源代码27 项目: opencps-v2   文件: DossierLogIndexer.java
@Override
protected Summary doGetSummary(Document document, Locale locale, String snippet, PortletRequest portletRequest,
		PortletResponse portletResponse) throws Exception {
	Summary summary = createSummary(document);

	summary.setMaxContentLength(QueryUtil.ALL_POS);

	return summary;
}
 
protected void processTCKReq(HttpServletRequest request, HttpServletResponse response) throws ServletException,
      IOException {

   PortletRequest portletReq = (PortletRequest) request.getAttribute("javax.portlet.request");
   request.getAttribute("javax.portlet.response");
   request.getAttribute("javax.portlet.config");
   Thread.currentThread().getId();
   portletReq.getAttribute(THREADID_ATTR);

   // Create result objects for the tests

}
 
源代码29 项目: opencps-v2   文件: DossierPartIndexer.java
@Override
protected Summary doGetSummary(Document document, Locale locale, String snippet, PortletRequest portletRequest,
		PortletResponse portletResponse) throws Exception {
	Summary summary = createSummary(document);

	summary.setMaxContentLength(QueryUtil.ALL_POS);

	return summary;
}
 
源代码30 项目: opencps-v2   文件: EFormIndexer.java
@Override
protected Summary doGetSummary(Document document, Locale locale, String snippet, PortletRequest portletRequest,
		PortletResponse portletResponse) throws Exception {
	Summary summary = createSummary(document);

	summary.setMaxContentLength(QueryUtil.ALL_POS);

	return summary;
}