@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());
}
java类javax.portlet.PortletMode的实例源码
Portlet20AnnotationControllerTests.java 文件源码
项目:spring4-understanding
阅读 24
收藏 0
点赞 0
评论 0
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);
}