2009-03-27 1 views
1

양식에서 optiontransferselect를 사용하고 있지만, 오른쪽 목록에서 선택한 항목을 제 조치에서 다시 얻는 방법을 모릅니다.struts2 - optiontransferselect - 정수 목록을 액션에 전달하십시오.

방문한 모든 국가의 ID가있는 목록을 가져와야합니다. 나는 나의 행동 List (Integer) countriesVisitedId에서 해봤 다. 그러나 nullPointerException을 리턴합니다. 다음 정수 ID 해봤지만 null을 반환합니다.

이 내가 무엇을 가지고 :

의 : optiontransferselect를

   label="Select visited countries" 
       name="countriesNotVisitedId" 
       leftTitle="Not visited countries" 
       rightTitle="Visited Countries" 
       list="%{countriesNotVisited}" 
       listKey="id" 
       listValue="name" 
       headerKey="countryNotVisitedId" 
       headerValue="--- Please Select ---" 

       doubleName="countriesVisitedId" 
       doubleList="%{countriesVisited}" 
       doubleHeaderKey="countryVisitedId" 
       doubleHeaderValue="--- Please Select ---" 
       doubleListKey="id" 
       doubleListValue="name" /> 

어떻게 내 행동에 방문 국가의 정수 ID를 가진 목록을 얻을 수 있나요? 액션에서

답변

0

:

public void setCountriesVisitedId(String[] countriesVisitedId) { 
    this.countriesVisitedId = countriesVisitedId; 
} 
1

가 여기에 내가 시도 무엇, 그것은 잘 작동합니다.

1 단계 : 왼쪽에서 오른쪽으로 국가를 선택하는 JSP입니다.

<s:optiontransferselect 
label="Favourite Characters" 
name="leftSide" 
id="left" 
leftTitle="Left Title" 
rightTitle="Right Title" 
list="%{countriesNotVisited)" 
multiple="true" 
headerKey="headerKey"  
doubleList="{}" 
doubleId="right" 
doubleName="rightSide" 
doubleHeaderKey="doubleHeaderKey" 
doubleMultiple="true" /> 

2 단계 : 자동으로 자바 스크립트 코드는 오른쪽에서 모든 데이터를 선택합니다.

function selectall() 
{ 
var list = document.getElementById("right"); 
for (var i = 0; i < list.options.length; i++) 
    { 
    alert(list.options[i].value) 
    list.options[i].selected = true; 
    } 
var form = document.getElementById("right"); 
form.submit(); 
     return true; 

} 

3 단계 : JSP 측에서 제출에이 함수를 호출합니다.

<s:submit id="submitid" value="Submit" action="insert" onclick="selectall()"/> 

4 단계 : 작업에서 getter와 객체 왼쪽의 이름과 오른쪽의 세터 문자열이 아닌 문자열 배열을합니다.

private String leftSide; 
private String rightSide; 

public String getLeftSide() { 
    return leftSide; 
} 

public String getRightSide() { 
    return rightSide; 
} 

public void setRightSide(String rightSide) { 
    this.rightSide = rightSide; 
} 

public void setLeftSide(String leftSide) { 
    this.leftSide = leftSide; 
} 

이제 행동에 값을 인쇄하려고하면 값을 얻을 것이다 : 내가 잘못하고 있었는지 궁금 벽에 머리를 두드리는했다

System.out.println("right side list " + ad.getRightSide()); 
1

. 그것은 아주 간단합니다

doubleName = "필드는"

공공 무효 setFields (문자열 필드) {이 액션 클래스에 있어야 무엇을 반환 태그 필드입니다.

내가 깨닫지 못했던 점은 요소를 다시 보내려면 요소를 선택해야한다는 것입니다. 또는 아약스를 머리글에 사용하면 간단합니다.