Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使具有相同支持类的portlet显示不同的信息?_Java_Portlet_Jetspeed2 - Fatal编程技术网

Java 如何使具有相同支持类的portlet显示不同的信息?

Java 如何使具有相同支持类的portlet显示不同的信息?,java,portlet,jetspeed2,Java,Portlet,Jetspeed2,我有一个包含x个项目的列表,还有一个包含x个Portlet的页面。页面上的每个portlet都有相同的支持类和对我的列表的访问权限,显示的内容根据选择的列表项而变化。编辑模式允许用户选择要显示的项目,我将他们选择的项目存储在portlet后面的preferences对象中 目前,每个portlet最初显示列表中的第一个项目,直到用户编辑portlet并选择不同的项目。但是,我希望每个portlet最初显示不同的项 似乎我必须根据位置计算要显示的项目。如果我有2列6行,那么第2列第4行中的项目将显

我有一个包含x个项目的列表,还有一个包含x个Portlet的页面。页面上的每个portlet都有相同的支持类和对我的列表的访问权限,显示的内容根据选择的列表项而变化。编辑模式允许用户选择要显示的项目,我将他们选择的项目存储在portlet后面的preferences对象中

目前,每个portlet最初显示列表中的第一个项目,直到用户编辑portlet并选择不同的项目。但是,我希望每个portlet最初显示不同的项

似乎我必须根据位置计算要显示的项目。如果我有2列6行,那么第2列第4行中的项目将显示项目8((第1行)*#列+列)。这很有效,只是当用户开始移动portlet时,portlet值会随着位置的变化而变化

我想“锁定”最初选择的项目,这样它就不会随着移动而改变。不幸的是,我确实需要在preferences对象中存储所选的初始项(或初始位置),但我不能在doView函数中这样做,并且只有在portlet切换状态时才会调用processAction

我考虑将初始选择存储在会话中,并在调用processAction函数时读取它(使其优先级低于实际提交的选择)。问题是,如果会话在用户切换portlet模式之前失效,则所选项目将不会被存储

我的另一个想法是以某种方式将portlet的位置作为变量包含在portlet.xml文件的portlet preferences元素中,但我甚至不知道这是否可行

我想另一个选择是使用我自己的首选项实现,但我认为这是最后的选择

有人对我如何完成我所需要的有什么想法吗

非常感谢您的帮助/建议

谢谢

B.J


另外,我正在使用Portlet 2.0规范(尽管我没有使用事件)和Jetspeed 2.1作为Portlet容器。

我认为您不应该在应用程序中利用Portlet disposure。除了使用专有门户,您没有办法确保portlet的顺序不被移动。
我会考虑在一个portlet中显示所有的东西,然后依赖JavaScript来支持块和行。< /P>你有没有使用Portlet的原因?这样的项目同时但独立的版本?