gpt4 book ai didi

java - 共享同一 bean 的 jsp portlet 选项卡

转载 作者:行者123 更新时间:2023-11-30 11:40:06 24 4
gpt4 key购买 nike

我需要在以这种方式定义的两个选项卡中共享同一个 bean:

<fmt:message var="tabNames" key="message.tab.alta" />


<c:set var="tabValues" value="valtab01,valtab02" />


<portlet:renderURL var="URL01" >
<portlet:param name="action" value="${ServletContextKeys.SC_INSERT}" />
<portlet:param name="${ServletContextKeys.SC_TAB_INSERT}" value="valtab01" />
</portlet:renderURL>

<portlet:renderURL var="URL02" >
<portlet:param name="action" value="${ServletContextKeys.SC_ADD_LIST}" />
<portlet:param name="${ServletContextKeys.SC_TAB_INSERT}" value="valtab02" />
</portlet:renderURL>

<liferay-ui:tabs
names="${tabNames}"
tabsValues="${tabEscrituraValues}"
param="${ServletContextKeys.SC_TAB_INSERT}"
url0="${URL01}"
url1="${URL02}"
value="${insert_tabs}"
/>

所以我需要在代表 2 个选项卡的 2 个 jsp 中只定义一个 bean:

    <form:form id="formInsert" action="action01" method="post" modelAttribute="myBean" enctype="multipart/form-data">

但我不知道如何让 2 个 jsp 共享同一个 bean。我需要在一个选项卡中填写 bean 的一些数据,并在另一个选项卡中填写一个列表(在同一个 bean 中)。填满所有数据后,从第一个选项卡提交,我将需要 Controller 中的整个 bean(第一个选项卡中的数据和第二个选项卡中的列表)我是 portlet、spring 和所有这些东西的新手,所以任何帮助都会很棒!

这可能吗?

最佳答案

如果您想以某种方式记住不在当前选项卡上的 modelAttribute 的属性,您可以通过多种方式做到这一点:

  • 使用 @SessionAttributes 注释在 session 中保留 modelAttribute。这可能是最简单的方法,它完全符合您的要求——让 JSP“共享”同一个 bean——但作为 REST 倡导者,我非常不鼓励这样做,因为这里的 session 太过分了(并不是说它甚至可以目前使用 portlet 构建 RESTful 应用程序)。
  • 将来自第一个选项卡的值保存在隐藏输入中的第二个选项卡的表单中。
  • 将第一个选项卡的值保存在 cookie 中,并根据提交请求将它们与第二个选项卡的 modelAttribute 融合

我认为后两者非常相似,但对于一般用途,隐藏输入可能更容易实现(它们可能需要很少甚至不需要 Controller 代码,例如用于正确验证)。

关于java - 共享同一 bean 的 jsp portlet 选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12912888/

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