2012-04-29 22 views
1

をスクリプトレットするために、コントローラからデータを転送し、私のような何かやろうとしている:JSP - 私はJSPを使用してに新しいです

<% for (int i=0; i<numTables; i++) { %> 
<h3> person <%=i%></h3> 
<% } %> 

numTablesはにHomeControllerクラス内の変数です。
私はまた、コントローラで実行しました:

model.addAttribute("numTables", numTables); 

と私が書く場合:

<h1>${numTables}</h1> 

それは正しい値を出力します。しかし、私はこの値を という値をforループのnumTablesに入れる方法を見つけることができませんでした。
助けてください。ありがとう。

編集:スクリプトレットで行う必要があります。

答えて

4

それは要求属性として格納されています:

Integer numtables = (Integer) request.getAttribute("numTables"); 

それとも、どのスコープでそれがわからない時はいつでも:しかし、あなたがすることによって、間違った道を進んでいる

Integer numtables = (Integer) pageContext.findAttribute("numTables"); 

タグリーブを避けるのはJSTLです。 Scriptletsは、ほぼ10年前にリリースされたJSP 2.0以来、discouragedです。私があなたのCS教師だったら、これに対してネガティブを得るでしょう。

3

スクリプトレットを避ける方がよいです。 JSTLタグは、同じ機能を実行することができる。

<c:forEach var="i" begin="0" end="${numTables}" > 
    <h3>person ${i}</h3> 
</c:forEach> 
+0

私はスクリプトレットでそれを行う必要があります。方法はありますか? – tomermes

+0

スクリプトレットを絶対に使用する必要がある場合は、BalusCsの回答を確認してください。 – krock

関連する問題