问题标签 [jsr286]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - Spring请求范围和JSF请求范围之间的区别?
我正在开发一个使用 JSF 1.2 的 JSR-286 portlet 应用程序。我正在努力将我的 JSF 托管 bean 移动到 Spring bean,我注意到 Spring 如何处理请求范围与 JSF 如何处理请求范围之间似乎存在差异。
在我的 portlet 应用程序中,我有两个 portlet 位于同一页面上,并且都使用相同的起始 JSF portlet 页面视图。当我使用 JSF 托管请求 bean 时,会为每个 portlet 创建一个单独的请求 bean,这就是我要寻找的行为。当我使用 Spring bean 时,只会创建一个请求 bean,并在两个 portlet 之间共享。这是正常行为吗?有什么办法可以阻止它这样做吗?
在将我的 bean 移动到 Spring 之前,我原来的 faces-config.xml 文件:
将 bean 移动到 Spring 后我的 faces-config.xml 文件:
还有我的 spring-web.xml 文件:
如有必要,我可以提供我的其他文件,请告诉我。谢谢!
编辑:将 aop:scoped-proxy 添加到 Spring bean。
编辑:添加 portlet.xml 文件:
liferay - 如何使用 JSR 286 通用 Portlet 配置 AspectJ ??? 任何链接
我们正在使用 Liferay tomcat 中的 JSR-286 portlet 开发门户应用程序。我们正在创建扩展 Generic Portlet 的 portlet。现在我想使用 AspectJ 在 doView() 和 doModify() 方法上应用日志。我尝试使用 Spring AspectJ。但是 Spring AspectJ 仅适用于 spring 管理的 bean。
运气好的话
java - 单击jsp上的href时如何调用方法(使用portlet JSR 286和Spring MVC 3)
我是 portlet 的新手,我有一个带有 href 标记的 visit.jsp 页面,如下所示:
基本上我的要求是当我单击href 并返回visit.jsp 时,我只需要调用一个methodVisit
在a中调用的方法。VisitController.java
然后在我methodVisit
的模型中添加一个名为 isVisited 的属性并返回到我的 visit.jsp 页面,因此我猜我的方法将具有以下行:
然后当我返回我的 visit.jsp 页面时,我可以使用这个检查:
使用提交按钮时,我看到了以下示例:
但是没有使用href的例子,请问如何使用href来做到这一点?
java - 从 doHeaders() 中删除重复的标题条目
我有几个 portlet,每个 portlet 在单个 Web 应用程序中使用汇集的 CSS 和 JS 文件的聚合。目前每个portlet 都会在doHeaders() 中添加适当的head 标签。但是,当多个 portlet 位于同一页面上时,这会导致头部中出现重复的标记。
目前,portlet 部署在运行于 GateIn的eXo上。eXo 有它自己的 JS AMD 框架和 portlet 皮肤系统,但我们使用 doHeaders() 添加头元素以尽可能地与平台无关以降低风险。
头元素以下列方式添加:
我需要从头中删除重复的条目,或者首先防止重复写入。
我正在尝试编写一个可以去除重复头部元素的通用 RenderFilter。但我似乎无法从RenderResponse访问当前的 Element 属性;我只能 setProperty() 或 addProperty()。
我还可以编写 RenderFilter 来替换每个单独的 portlet 的 doHeaders() 方法,并将整个 CSS 和 JS 池添加到头部。但是我不能确保这个逻辑只会在每个用户会话页面呈现时运行。
session - JSR 286 Portlet 统计在线用户数
我想创建一个名为 VisitCounter 的 JSR 286 Portlet 以安装在 websphere Portal 8.0 上。VisitCounter 统计在线用户数。
这个怎么做?谢谢!
portlet - 符合 JSR 286 的命名空间参数
在 portlet 中,在 action 方法中读取命名空间参数的最佳方法是什么。我的表格包含
选项1:
选项2:
option1 在 liferay 中不起作用,但似乎在 websphere 中起作用。option2 在 liferay 6.2 中运行良好。option1 似乎在 6.1 之前有效。
谁能告诉我什么是符合 jsr 286 的方式?
jsp - 在 JSR 286 Portlet 中获取 portletSessionScope 属性
我正在研究 JSR 286 Portlet(Portlet 规范 2.0)。我尝试在 JSP 上设置一些值,我通过session.setAttribute()
. 但是,我似乎无法从PortletSession
但是,如果不使用 portlet 命名空间名称
我对 JSR 286 的理解PortletSession
是这样的:
- 每个 portlet 都会被赋予它自己的“portlet session”,它是来自 web 容器的 HttpSession 的一个子部分
- 添加到“portlet 会话”的属性将仅对该 portlet 可见
- 分离是通过向属性添加名称空间来完成的,格式为“javax.portlet.p.?”,其中 是 Portlet 的唯一标识符并且是属性的名称。
在阅读本文时,我的印象是,portletSessionScope
在 JSP 中使用该对象会给我对属性的取消引用访问权限,从而使我能够像在普通 JSP 代码和 HttpSession 中那样获取值。然而,情况似乎并非如此。
采用以下 Java 代码:
我希望以下内容在 JSP 代码中可以正常工作:
但是,我没有在<div>
标签上打印任何内容。我也试过:
${portletSessionScope.sessionData.MESSAGE}
${portletSessionScope[MESSAGE]}
${portletSessionScope["MESSAGE"]}
<%=portletSession.getAttribute("MESSAGE", PortletSession.PORTLET_SCOPE)%>
以及其他一些人。但是,如果我像这样打印出所有变量pageSessionScope
:
我看到它就在那里,只是预先加上了门户 ID,如下所示:
javax.portlet.p.9f4396132993df65a8017810d6c48a0c-a6f0dbfb9072591830fbfb10d6c48a0c-96d16bb01556c9c7725e4632d6c48a0c?MESSAGE
如果我接受它并将其传递到以下内容:
<%=portletSession.getAttribute("javax.portlet.p.9f4396132993df65a8017810d6c48a0c-a6f0dbfb9072591830fbfb10d6c48a0c-96d16bb01556c9c7725e4632d6c48a0c?MESSAGE", PortletSession.PORTLET_SCOPE)%>
甚至
${portletSessionScope["javax.portlet.p.9f4396132993df65a8017810d6c48a0c-a6f0dbfb9072591830fbfb10d6c48a0c-96d16bb01556c9c7725e4632d6c48a0c?MESSAGE"]}
然后它工作得很好。
所以,问题:
- 为什么使用 JSTL 和 EL 的简单表单不起作用?
- 是否有可能让 JSTL/EL 像我期望的那样工作?
- 如果不是,我如何获取用于附加到属性名称的命名空间的值?这不仅仅是 from 的值
<portal:namespace>
,它似乎也有一些特定的实例 ID 信息。
如果它有助于识别我们在 WebLogic 9.2 和 Vignette 7.4 上的问题。
java - 在 Websphere Portal 8.5 上读取 JSR286 portlet 中的 URL 参数
在 IBM Websphere Portal 8.5 中,如何在 JSR286 portlet 中从 URL 检索查询字符串参数?
似乎 HTTPServletRequest 没有传递给 PortletRequest。我需要使用 portlet.xml 中的配置吗?这似乎用于管理 portlet 之间的通信,但无论如何我尝试使用它但没有成功,每个 ParameterNames 和 ParameterMap 都变空了。
我是否需要设置一些拦截器/过滤器来预处理参数?
不知道这个问题有多少是特定于 IBM Websphere Portal 或只是简单的 JSR286 portlet。
jsf-2 - Portlet 知道同一页面上的其他 Portlet
我的任务是开发一个“动作 portlet”,其中包含同一页面上所有其他 portlet 的动作(例如 h:commandLink)。现在,只有当相应的 portlet 实际出现在同一页面上时,这些操作才应该可用。
Portlet 是否可以“知道”哪些其他 Portlet 在同一页面上,而不必先处理 ActionRequest?
问候。
java - Can I create a Java Portal (JSR 168/286) using only an application server (Tomcat, JBoss, etc)?
I want to create a lightweight portal using the Java specification. I want to be able to deploy the same portal project in different application servers (in this case WebSphere, Tomcat and JBoss).
I've checked products like Liferay, but I want to create my own framework and interface, and just embed Java Portlets, instead of using Liferay's full framework and interface.
With IBM WebSphere (not WebSphere Portal), I followed the following guide:
I managed to create a simple JSP embedding two simple portlets. Each of the portlet projects are product agnostic (contrary to Liferay or Apache Pluto projects, which include product-specific configuration files). This is what I want to do.
The problem is that, if I try to run those same projects in Tomcat or JBoss, they are not working. As I said before, the projects doesn't have any IBM or WebSphere specific configuration files.
So, my questions are:
- Is there a way to use Java Portlet projects without having to add vendor-specific files or code, and add them to any application server?
- Where can I find the guidelines to create application-server-agnostic portlets and portals?
- Is it the case that WebSphere has a portlet container but the other servers don't?