2013-04-30 1 views
1

콤보 박스에 대한 유효성 검사를 수행했습니다. 어떤 값을 선택하지 않고 양식 필드를 제출하면 오류가 발생하지만 일부 값을 선택하고 양식을 제출하면 선택한 값이 채워지지 않습니다.Struts 콤보 상자가 유효성 검사에서 선택된 값을 채우지 않습니다.

참고 : 그것은

<s:combobox label="" id="NotifSound" cssStyle="padding:0px;width:200px" 
headerKey="-1" headerValue="--- Select ---" value=" - Add or Select - " 
list="%{#session.NotificationSoundList}" maxlength="50" name="messageBean.sound" 
labelSeparator="" cssClass="form_textbox" labelposition="left" /> 
+0

'Action'에'messageBean' ('Setter')이라는 객체가 있고'sound' ('Setter'와 함께)라는 String 속성이 있나요? –

+0

예 제출 버튼을 클릭하기 전에 소리의 유형을 선택했을 때 얻을 수 있습니다. 제출 버튼을 클릭 한 후 문제가 발생했습니다 – sulthana

+0

목록을 게시하는 동안 '% {# session.NotificationSoundList}'에서 읽는 중입니다. 제출 한 후에는 목록의 선택된 요소 (또는 사용자 정의 입력 요소)를 getMessageBean(). setSound()에 보냈습니다. "제출 전"(채워진 콤보 박스)과 "제출 후"(선택된 단일 값을 보낼 때) 간에는 상관 관계가 전혀 없습니다. 다시 확인하거나 액션 코드를 게시하십시오 ... –

답변

0

난 당신이 발생하는 문제가 session 변수를 사용하는 것입니다 생각 양식을 제출하기 전에 선택한 값을 채우는. 이 변수는 결과를 반환하기 전에 수동으로 업데이트해야하기 때문에.

select tag에서 제출하면 값을 선택할 때 값 속성이 있습니다. 그런 다음이 값은 action 속성에 설정된 스트럿으로 보내집니다.

이제 액션이 실행되고 세션 맵에서 목록을 가져온 다음 제출 한 값을 추가 할 수 있습니다. 그런 다음 결과를 JSP로 반환하면 새로운 select 요소가 동작에 의해 이미 업데이트 된 session scoped variable의 값으로 렌더링되고 다시 채워집니다.

관련 문제