0

我有一个棘手的问题。我有一个包含三个 iframe 的页面,每个 iframe 调用一个 struts 动作来显示内容。

现在,在其中一个 iframe 中,有一个(struts)表单和一个(struts)提交按钮。在另一帧中,用户执行的最后操作的历史记录。单击提交按钮时,我希望提交表单并重新加载整个页面,以便历史记录是最新的。

最后一个问题,但并非最不重要:

假设我有: - select1 :表单中有一个struts select。当点击提交按钮时,调用相关的struts动作。但是,我不想在此操作中有“select1”属性。相反,我想要一个包含这个“select1”的对象,比如说一个名为“fieldContainer”的对象。我希望在提交表单时初始化 fieldContainer.select1。

所以让我们举个例子:

表单.jsp:

<s:form>
  <s:select id="select1" name="select1" list="select1list"/>
  <s:submit action="submitThisForm"/>
</s:form>

动作.java:

FieldContainer fieldContainer;

@action("submitThisForm") 
String submitThisForm() {
  String mySelect = fieldContainer.select1 ;
  // do something with mySelect
  return "SUCCESS";
}

我不知道如何实现与每一点相对应的东西,有什么想法吗?

4

1 回答 1

0

对于第一个问题,您必须在客户端使用 javascript 来解决。

在显示提交页面的新内容后,iframe 的父级必须处理其他页面的更新。父级导致其他框架的刷新,或者响应提交而隐藏所需的信息,并由父级获取并设置为“历史框架”(由 js)。

两者都有优势,但我想不出没有 javascript 的解决方案。

关于您最小的问题:如果该操作为 fieldContainer 提供了一个 getter,并且该字段的名称是“fieldContainer.select1”,struts 会将值放入对象 fieldcontainer 中的 setter。fieldContainer 应该在 valuestack 中的某个地方,所以 struts 可以找到它的 setter。

于 2012-10-10T09:55:51.157 回答