2017-10-19 13 views
0

Webアプリケーションに問題があります。私はコントローラとしてSpring MVCを使用します。私のJSPでは、私はいくつかの入力を含むフォームを持って、それらの一つ一つは、このように、モデルの属性であるStringオブジェクトのArrayListの、の内容を表示します。空のArrayList要素(Spring 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

まあ、スプリングフォームタグと普通のものとの間に違いがありますが、バネタグは必要ないかもしれません。 –

答えて

0

Jack Flampが示唆しているように、Springフォームから通常フォームに切り替えると、魔法がかかりました。今や、三元演算子やその他の奇妙な修正を必要とせずに、すべてがスムーズに動作します。

関連する問題