0

在我的应用程序中,我有一个使用显示标签的表格,它使用的是 spring web flow。我想在每一行都有一个复选框,一个允许我选择/取消全选的按钮和一个执行功能的按钮。单击按钮后,该操作将执行一些数据库操作,并且应该呈现页面,因此我们可以看到这些更改。

我不知道哪个可能是最好的选择,提交整个表格

<form method="POST" (more params)>
    <display:table id="row">
          ....
   </display:table>
</form>

或者只有复选框列。在这种情况下,我不知道如何实现它。

我尝试了两种不同的方法: 1. 使用简单的输入文本,复选框类型。这是不可能的,因为当我提交表单时,我需要设置另一个 page.jsp 的路径(我正在使用流)。此外,我不知道如何将这些值发送到 java 后端。

  1. 使用弹簧标签。在这种情况下,问题出在课堂上conversationAction

我找到了一些示例,但始终使用 MVC 和控制器案例。

我怎么能实现这个问题?

编辑 我找到了一种解决方案,但我遇到了一个新问题......

流.xml

 var name="model1" class="com.project.Model1"/>
 var name="model2" class="com.project.Model2"/>

view-state id="overview" model="formAggregation">
...
</view-state>

页面.jsp

 form:form modelAttribute="formAggregation.model1" id="overviewForm">
...
/form:form>
...
 form:form method="POST" modelAttribute="formAggregation.model2">
    display:table id="row" name="displayTagValueList" requestURI="overview?_eventId=tableAction">

display:column title="">
            form:checkbox path="conversationIds" value="${row.threadId}"/>
        /display:column>

/display:table>
        input type="submit" name="_eventId_oneFunction" value="Send>>"/>
    /form:form>

FormAggregation.java

@Component("formAggregation")
public class FormAggregation {
   private Model1 model1;
   private Model2 model2;
//Getters and setters

我需要这个聚合器,因为我需要两个模型。我已经一一测试了它,它按预期工作。有什么想法吗?

谢谢!!

4

1 回答 1

0

我找不到在视图状态下添加两个模型的解决方案。所以我做了一个解决方法,将我需要的字段添加到我正在使用的模型中,com.project.Model1. 所以结果是:

页面.jsp

<form:form method="POST" id="tableForm" modelAttribute="model1">
     <display:table id="row">
           <display:column title="">
            <form:checkbox path="chosenIds" value="${row.id}"/>
          </display:column>
          <display:footer>
            <div class="tableFooter" >
                <input type="submit" name="_eventId_workIds" value="Send"/>
            </div>
        </display:footer>
      </display:table>
  </form:form>

流.xml

<var name="model1" class="com.project.Model1"/>
...
<transition on="workIds" to="overview" validate="false">
            <evaluate expression="actionBean.workIds(model1.chosenIds)" />
        </transition>

java类

public void workIds(List<Long> ids) {

希望能帮助到你

于 2012-07-30T08:53:11.383 回答