2012-04-22 30 views
3

私は次のコードを得た:JSTL値を連結する方法は?

<p><c:out value="${tracksCD1}" /> Tracks für CD${i} hochladen</p> 
<p><c:out value="${tracksCD2}" /> Tracks für CD${i} hochladen</p> 

などなど:「tracksCDは」このような何かがループで作成されるように、私は、変数を連結することがあり

<c:forEach var="i" begin="1" end="${finalDisccount}"> 
       <p><c:out value="${tracksCD}" /> Tracks für CD${i} hochladen</p> 
       <p><input id="filename_${i}" type="file" name="filename_${i}" size="50" multiple="multiple" required="required"/></p> 
</c:forEach> 

に値を。 $ {tracksCD}と$ {i}を組み合わせて$ {tracksCD1}を動的に取得する方法はありますか?

ありがとうございます。

+0

Aをより良い解決策は、それらの配列をポピュレートするオブジェクトをあなたのために行い、単純に戻すことです。 JSTLを使用するJSPは、レンダリングのみを担当する必要があります。データの準備は他の場所で行う必要があります。 – duffymo

+0

アレイが実際に配置されます。ユーザーは前のステップで数値を入力する必要があり、このループでプログラムは与えられた数に従ってアップロード入力を生成します。だから私は生成する必要がある入力フォームの数を知るために、そのようなコードが必要です。 –

答えて

0

データの範囲を知っている場合は、${requestScope}${sessionScope}または${applicationScope}のスコープマップでアクセスできます。例えば。要求範囲内にあるとき:

<c:forEach var="i" begin="1" end="${finalDisccount}"> 
    <c:set var="tracksCDKey" value="${tracksCD}${i}" /> 
    <p><c:out value="${requestScope[tracksCDKey]}" /> Tracks für CD${i} hochladen</p> 
    <p><input id="filename_${i}" type="file" name="filename_${i}" size="50" multiple="multiple" required="required"/></p> 
</c:forEach> 

しかし、あなたはかなり厄介なデザインミスをしています。次のようにあなたが行うことができるようにむしろ​​として配列またはリストにそれらを収集:

<c:forEach var="i" begin="1" end="${finalDisccount}"> 
    <p><c:out value="${tracksCDs[i - 1]}" /> Tracks für CD${i} hochladen</p> 
    <p><input id="filename_${i}" type="file" name="filename_${i}" size="50" multiple="multiple" required="required"/></p> 
</c:forEach> 

それとも${finalDisccount}が配列/リストと同じ大き持って起こる場合:

<c:forEach items="${tracksCDs}" var="${tracksCD}" varStatus="loop"> 
    <p><c:out value="${tracksCD}" /> Tracks für CD${loop.count} hochladen</p> 
    <p><input id="filename_${loop.count}" type="file" name="filename_${loop.count}" size="50" multiple="multiple" required="required"/></p> 
</c:forEach> 
+0

大変ありがとうございました、配列のアイデアはそれを行い、それは今の魅力のように働いています:) –

+0

あなたは大歓迎です。あなたがここでは新しいので、問題を解決するのに最も役立ったときは常に、答えをマークすることを忘れないようにしてください。 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235も参照してください。 – BalusC

関連する問題