2017-10-19 13 views
0

웹 응용 프로그램에 문제가 있습니다. 나는 Spring MVC를 컨트롤러로 사용한다. 내 JSP에서 나는 한 형태, 그들 각각이 같은 모델 속성입니다 String 오브젝트의 ArrayList를,의 내용을 표시하는 몇 가지 입력을 포함하는이 :표현식 언어가 빈 ArrayList 요소 (스프링 MVC 컨트롤러)를 올바르게 표시하지 않습니다.

<form> 
    <c:forEach var="i" begin="0" end="${myArrayListlength}"> 
     <form:input id="line${i}" type="text" value="${myArrayList[i]}" /> 
    </c:forEach> 
</form> 

을 문제는 그 어떤 요소 ArrayList (심지어 이론적으로 모두)가 비어있을 수 있습니다. 비어 있지 않은 문자열을 표시하는 입력은 정상적으로 작동하며 빈 문자열에 해당하는 입력은 모든 ArrayList 요소의 연결을 표시합니다. ArrayList에 "Joe", "Mark", "", "Bob"의 4 개 요소가 포함되어 있다고 가정 해 보겠습니다. 양식에 다음과 같이 표시됩니다.

Joe 
Mark 
Joe,Mark,,Bob 
Bob 

나는 제대로 된 입력을 얻으려고 아무 것도 시도하지 않았지만 헛되지 않았습니다.

value="${not empty myArrayList[i] ? myArrayList[i] : ''}" 

과 같은 세 가지 표현식을 사용하려고 시도했지만 작동하지 않았습니다.

미리 알려 주셔서 감사합니다.

+1

루프를 다음과 같이 변경하면 이런 일이 발생합니다 : '

'? –

+0

폼 입력은 페이지에서 사라졌습니다. ( –

+1

) 스프링 폼 태그와 일반 폼 태그 사이에 차이가 있습니다. 아마도 스프링 태그가 필요하지 않을 수도 있습니다. 입력 태그에서 'form :'부분을 제거해보십시오. –

답변

0

잭 플레임 (Jack Flamp)이 제안했듯이, 스프링 폼에서 일반 폼으로 전환하면 마술이 생겼습니다. 이제 모든 것이 3 자 운영자 또는 다른 이상한 수정을 필요로하지 않고 원활하게 작동합니다.