gpt4 book ai didi

liferay - 是什么让 portlet 符合 JSR-286 要求?

转载 作者:行者123 更新时间:2023-12-02 14:12:30 25 4
gpt4 key购买 nike

是否有人有一个简明摘要的链接,该摘要说明了 portlet“符合 JSR-286 标准”与仅“符合 JSR-168 标准”的区别。我有一份规范的副本,但它一点也不简洁,因此链接规范并不是一个有用的答案。我已经在网上搜索了一个小时,但没有发现任何明确的内容(除了规范之外,这当然要求您也阅读以前的规范,然后从“必需的”中删除“新功能”)合规性”。

特别是,我发现人们对 web.xml 的必要性存在相当大的困惑,这似乎来自使用 Liferay 的人们,但没有意识到 Liferay 正在为他们提供 web.xml。

Do JSR-286 portlets require a web.xml file in their WAR files?

我真正想要的是包含以下一个或多个列表的内容:

  • 必须对 JSR-168 执行哪些操作才能使其符合 JSR-286 标准
  • 您绝对不能做的事情,因为这会导致符合 JSR-286 的 portlet 仅被视为 JSR-168。

您可以将“使用 portlet-app_2_0.xsd”从列表中删除,因为我认为这部分是显而易见的。

我愿意接受以下答案:除了 portlet.xml 的 DTD/xsd 之外,这两个列表都是空的,区别仅在于门户支持的内容,但请用链接或其他引用来支持该断言。

我关心的原因是我在 Liferay 中看到有关 Vaadin portlet 的帖子,这些帖子暗示某些功能不适用于 JSR-168 portlet...也可能是 Liferay 中的某些逻辑根据 portlet.xml 的版本进行切换它看到了,但我还没有证实这一点,所以这也会是有趣的信息,但不是我问题的答案。

最佳答案

根据this doc ,但 jsr286 中也提到了它:

The JSR 286 spec(Portlet 2.0) does not break binary compatibility with JSR168(Portlet 1.0). This means that all portlets written against the Portlet 1.0 specification can run unchanged. The only exceptions to this rule are:

renderResponse.setContentType is no longer required before calling getWriter or getOutputstream. In JSR168, calling getWriter or getOutputstream without previously setting the content type resulted in an IllegalStateException.

getProtocol for included servlets / JSPs returns ‘HTTP/1.1’, In JSR168, it returned null.

因此,只要您的 jsr168 portlet 不依赖于 getProtocol() 返回的值,您就是安全的(即每个 jsr168 portlet 都是 jsr286 portlet)。

您看到的帖子似乎是合乎逻辑的,因为 jsr286 是一个较新的规范,并且有一些功能使 jsr268 portlet 不是 jsr168 portlet。

关于liferay - 是什么让 portlet 符合 JSR-286 要求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9025496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com