- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Liferay 门户上有一个 portlet,我在其中从 .jsp 页面调用操作。我想将一个 String 数组传递给另一个将显示该数组的 .jsp 页面。但是,根本没有传递任何值。
我可以使用 String something = (String)prefs.getValue("something", "something"); 传递一些 String 值,
但这不适用于数组。
这是我的 view.jsp,我从中调用 actionRequest(我将只显示部分代码,否则会太长):
<portlet:actionURL var="loadMessages" name="loadMessages">
<portlet:param name="jspPage" value="/view.jsp" />
</portlet:actionURL>
这是我的 Java 类中的 loadMessages() 函数:
public void loadMessages(ActionRequest actionRequest, ActionResponse actionResponse)
throws IOException, PortletException {
manager.loadFromDB();
ArrayList<Message> messagesObject = manager.getMessages();
// we must save our messages as strings
String[] messages = new String[messagesObject.size()];
for (int i=0; i<messagesObject.size(); i++) {
String msg = "";
Message message = messagesObject.get(i);
msg += message.getMsgid() + "\n";
msg += message.getSender() + "\n";
msg += message.getReceiver() + "\n";
messages[i] = msg;
}
// save
if (messages != null) {
actionRequest.setAttribute("messages", messages);
System.out.println(messages.length + " messages loaded!");
}
}
到目前为止一切正常:我收到“已加载 x 条消息!”消息。
当我想在我的 display.jsp 文件中访问这个数组时,问题就来了:
<%
String[] messages = (String[])renderRequest.getAttribute("messages");
if (messages == null) {
System.out.println("NULL MESSAGES");
} else {
System.out.println(messages[0]);
}
%>
我明白了,我的数组在这里是 NULL?我必须进行哪些更改才能访问我在 actionRequest 阶段保存的数组?
第二个问题:是否可以将 Java 对象传递给 .jsp 页面?我猜这只适用于字符串,但使用对象肯定很酷!
感谢您的回答!
最佳答案
您可以将整个消息列表设置为属性。
即
actionRequest.setAttribute("messages", messagesObject);
你可以渲染到特定的jsp使用
即
res.setRenderParameter("mvcPath", "jspPath");
或
res.setRenderParameter("jspPage", "jspPath"); (this one is deprecated now)
在 jsp 部分,您可以使用 jSTL c:foreach
访问此值即
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:forEach var="message" items="${messages}">
<c:out value="${message.sender}"/>
</c:forEach>
试试这个如果你有任何问题,请告诉我
关于java - Liferay portlet - 将字符串数组从 actionRequest 传递到 renderPhase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16581952/
在今天的一次采访中,我提到我在 portlet 中做了一些 jsf 工作。面试官询问 portlet-bridge 的具体功能。我从来没有研究过它,只是使用它,因为我被告知它会使 jsf 在 port
我是 Portlet 应用程序开发的新手,我对 PortletContext 对象有一个疑问。如果在单个 Portlet 应用程序中配置了多个 Portlet,则每个 PortletApllicati
我正在尝试修复分配给自定义 portlet 管理器的日历 portlet 的月份导航。这个管理器是从一个特定的浏览器页面模板调用的: 不幸的是,经理没有为我呈现带有散列的包装器,因此我尝试手动将 k
使用 documentation在 plone.org 和论坛中的一些网站上,我能够在 Plone 4.0.8 中的内容下方获得一个自定义 portlet 管理器。实际上,目标是让 4 个自定义管理器
是否可以在一个 portlet 中创建几个 portlet?我的意思是多级 portlet。 最佳答案 是的。您可以使用 Nested Portlet为此目的。这是其他 portlet 的布局容器。您
当我在 tomcat 服务器上的 liferay 6.0.6 中一个接一个地部署两个 portlet 时,第二个部署的 portlet 正在取消部署第一个部署的 portlet,反之亦然: 堆栈跟踪:
我正在使用 Spring MVC Portlet 开发一个 portlet 并部署在 Liferay 中。我对这个 portlet 的意图是显示一个包含一些重要信息的树。为了实现这个目标,我需要请求服
所以我用谷歌搜索了一整天,得到的答案很少,但他们都失败了。更不用说所有的解决方案都 > 3 岁了。我正在使用 LR 6.1 CE。将不胜感激简单的工作示例,因为其他答案总是让我获得空值。 最佳答案 有
我正在使用portlet function of JQuery UI创建一个基本的门户页面。 JQuery UI 页面上的示例显示了一个非常简单的示例,其中包含 3 列和适合这些列的固定大小的 por
对于由 Liferay EE 6.0 SP1 提供支持的网站,有时某些页面需要“共享”某些 portlet 的同一实例,但其他页面将拥有自己的实例。 例如(人为设计,但希望能够说明问题),考虑一个带有
我是 Liferay portlet 的新手。谁能告诉我如何根据另一个 portlet 的事件显示或隐藏一个 portlet。我只想在ice:spaces 中编码,而不是任何其他方式。如果有人知道这个
父 portlet 有一个表单,我填写但尚未提交。 然后,我从这个父 portlet 中单击一个链接来打开一个弹出 portlet,在弹出窗口中填写表单并提交值。 该值现在应该在父 portlet 中
我有一个页面,其中包含一个 portlet(portlet A)和一个用于打开弹出窗口的按钮。 Liferay.Util.openWindow(..) 在弹出窗口中,我有另一个 portlet(por
我的问题是如何从一个 portlet 转到另一个。 我的场景是这样的: 用户可以查看特定 portlet 的 view.jsp。当他单击按钮时,页面将显示另一个 portlet 的 view.jsp。
例如,我有三个 portlet:portletA、portletB 和 portletC。 portletA 显示在左侧,它有两个链接 linkB 和 linkC。 如果我点击 linkB 然后 po
为什么我要在 tomcat 和 gwt 之上使用 java portlet?portlet 是否会减少或不需要我使用 jsp 和 jsf?Jboss 是否已成为 portlet 进化文化的一部分? J
我需要自定义哪个 portlet 出现在“添加更多 portlet 菜单”中,如下图所示: 我需要根据登录的用户或站点(社区)限制此菜单中显示的 portlet 数量。这样,站点所有者或站点管理员将能
我如何重新排序 portlet,以便继承的父 portlet 排在当前项的 portlet 之前? 最佳答案 Mathias 的解决方案似乎更简单;无论如何,如果您不想安装第三方产品,我想保留此文档。
在 Plone 4.1 中禁用站点范围内的 portlet 类型的最佳方法是什么?默认设置提供约 10 个 portlet 类型,但站点用户仅拥有少数几种用例(静态文本、新闻)。 最佳答案 Portl
我正在将最基本的 Portlet 部署到 Liferay: public class FirstPortlet extends GenericPortlet { @RenderMode(nam
我是一名优秀的程序员,十分优秀!