0

私のアプリケーションでは、表示タグを使用して、スプリングWebフローを使用しているテーブルがあります。各行にチェックボックス、すべてを選択/選択解除できるボタン、および機能を実行するためのボタンが必要です。ボタンをクリックすると、アクションによっていくつかのデータベースアクションが実行され、ページがレンダリングされるため、これらの変更を確認できます。

テーブル全体を提出して、どちらが最善の選択肢であるかわかりません

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

または、チェックボックス列のみ。私はこの場合、それを実装する方法がわかりません。

私は2つの異なるアプローチを試しました:1。単純な入力テキスト、チェックボックスタイプを使用します。フォームを送信するときに、別のpage.jspへのパスを設定する必要があるため(フローを使用しています)、これは不可能です。その上、これらの値をJavaバックエンドに送信する方法がわかりません。

  1. スプリングタグを使用します。この場合、問題はクラスで発生しますconversationAction

いくつかの例を見つけましたが、常にMVCとコントローラーのケースを使用しています。

この問題をどのように実装できますか?

編集 私はある種の解決策を見つけました、しかし私は新しい問題に直面しました...

flow.xml

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

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

page.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

ビューステートに 2 つのモデルを追加する解決策が見つかりませんでした。そこで、回避策として、使用していたモデルに必要なフィールドを追加しましたcom.project.Model1。したがって、結果は次のとおりです。

page.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 に答える