java - 是否可以在 liferay 中创建没有请求对象的呈现 URL?

标签 java liferay

当我有 PortletRequest 时,我知道如何创建呈现 URL,但如果我没有呢? 类似于:

PortletURLFactoryUtil.create(portletRequest, portletId, plid, lifecycle)

但没有 portletRequest。

最佳答案

在Liferay中,javax.portlet.PortletURL是由com.liferay.portlet.PortletURLImpl实现的. PortletURLImpl 的每个构造函数都需要 PortletRequestHttpServletRequest 作为参数。

因此,严格来说,使用 Liferay Java API,没有请求对象就不可能创建 portlet url。

如果您不想将请求对象作为参数传递给您的代码,您总是可以以某种方式将其隐藏起来。例如,portlet:renderURL JSP标签没有请求参数,但是它从当前的javax.servlet.jsp.PageContext获取请求对象。

同样,您的 Java 代码可以使用某种 portlet/servlet 过滤器,将请求对象存储在 ThreadLocal 或其他线程绑定(bind)存储中,并在请求处理期间将其保存在那里。

无论如何,portlet url 与请求处理的关系如此紧密,我认为没有理由为此烦恼。

关于java - 是否可以在 liferay 中创建没有请求对象的呈现 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33651276/

相关文章:

java - 基于使用 wsdl2java 创建的 stub 将客户端证书附加到 Web 服务调用

java - 更新到 gradle 5.1.1 和项目到 java 11 后无法构建项目。类型代码无效

java - Android/Java -- 将简单文本发布到 Facebook 墙上?

java - 如何使用 liferay portlet 在数据库中插入数据

liferay - 使用 OrganizationLocalServiceUtil.addOrganization 在 Liferay 中创建组织?

xhtml - 编辑 portlet(xhtml 部分)而不进行部署

java - 为什么当我的结果集类型是 forward only 时我可以使用 first() 方法?

java - 在 EL 中调用带有 null 参数的方法最终传递的是 0 而不是 null

java - 管理网页内容中的 Liferay 自定义字段验证

css - SASS 无效的 CSS