据我了解,您有一些 JavaScript 参数要传递到下一页。但是,您可以使用 PortletSession 的 APPLICATION_SCOPE 来执行此操作,并且可以通过将值放入输入中来解决将 JS 参数转换为 Java 的问题。如果这些输入变量不应该由用户编写并且您从其他地方获取它们,则可以隐藏输入:
在你的jsp中:
<form>
<input type="hidden" id="myinput1" name="in1" value="">
<input type="hidden" id="myinput1" name="in2" value="">
</form>
<script>
var a = "avalue";
var b = "bvalue";
document.getElementById("myinput1").value=a;
document.getElementById("myinput2").value=b;
</script>
然后在需要时提交表格。接下来,您将能够在 portlet 的 ProcessAction 方法中这样做:
String a= request.getParameter("in1");
String b= request.getParameter("in2");
PortletSession session = request.getPortletSession();
session.setAttribute("a", a , PortletSession.APPLICATION_SCOPE);
session.setAttribute("b", b , PortletSession.APPLICATION_SCOPE);
在另一个 portlet 中,您可以通过调用
session.getAttribute("a",PortletSession.APPLICATION_SCOPE);
当然,如果您不能简单地将它们放在下一页的 url 中。