2012-07-27 2 views
0

스프링 웹 플로우를 사용하는 어플리케이션에서 디스플레이 태그를 사용하는 테이블이 있습니다. 나는 각 행에 체크 박스를 갖고 싶다. 버튼을 사용하여 모두 선택/사용하고 버튼을 사용하여 기능을 실행할 수있다. 버튼을 클릭하면 작업이 일부 데이터베이스 작업을 수행하고 페이지가 렌더링되어 이러한 변경 사항을 볼 수 있습니다.하나의보기에서 둘 이상의 양식. 스프링 웹 플로우 + displaytag + 체크 박스

나는 전체 테이블

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

또는 전용 체크 박스 열을 제출, 최선의 선택이 될 수있는 알하지는. 나는이 경우 어떻게 구현할지 모르겠다.

두 가지 접근 방식을 시도했습니다. 1. 간단한 입력 텍스트, 체크 박스 유형을 사용합니다. 이것은 폼을 제출할 때 다른 page.jsp에 대한 경로를 설정해야하기 때문에 불가능합니다 (플로우로 작업 중입니다). 게다가, 나는 자바 백엔드에 이러한 값을 보내는 방법을 모르겠다.

  1. 스프링 태그 사용. 이 경우 는 문제는 내가 MVC 컨트롤러 케이스를 사용에 allways 일부 examples하지만 발견

conversationAction 클래스 아 파크 온다.

어떻게이 문제를 해결할 수 있습니까 ??

편집 나는 솔루션의 종류를 발견했다,하지만 난 새로운 문제 ...

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> 

FormAg 나는 두 모델을 필요로하기 때문에

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

gregation.java 나는이 애그리 게이터 (aggregator)가 필요합니다. 나는 이것을 하나 하나 시험해보고 싶다. 그것에 대해 어떤 생각 ??

감사합니다.

+0

도움이되기를 바랍니다 : < form : form method = "POST"commandName = "conversationAction">

답변

0

뷰 상태에서 두 모델을 추가하는 솔루션을 찾을 수 없습니다. 그래서 나는 내가 사용하고있는 모델에 필요한 필드를 추가하여 해결 방법을 만들었습니다. 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> 

자바 클래스

public void workIds(List<Long> ids) { 

은, 코드 내 두 번째 조각이 표시되지 않는 이유 내가 아는하지는