2010-12-10 16 views
0

jspのページsay.jspがあるので、springを介してview.htmとしてレンダリングされます。okですが、これでリストを渡したいと思います。リストから、view.htmはview.htm/{id}に変更されますが、もし100のデータがあれば、100のJSPページが必要ですか?どうすればいいですか?spring jsp viewの問題

答えて

2

リクエストにリストを追加して、view.jspでそれを繰り返すことができます。だから、(誇張された例)のように

、今

List<String> datas = new ArrayList<String>(); 
//Add 100 datas... 
request.setAttribute("datas", datas); 

、あなたはそれを反復する... view.jspにJSTLを使用することができます。

<c:if test="${requestScope.datas != null}"> 

</c:if> 

正しく、わかりませんでしたか?


編集あなたの質問に基づいて、あなたはまだ、リスト上のデータを反復処理し、view.htmにデータIDを付加したアンカータグを作成することができます。

最初のポストに置くようsomeDataが置換datasある

(擬似コードで)

$ {someData.description}のようなもの、。アンカータグは<c:if>タグの内側に配置されます。したがって、配列内に100個のアイテムがある場合、100個のアンカータグがあります。

+0

いいえいいえ私は尋ねない、私はビュー/ 123、ビュー/ 124、ビュー/ 125のようなものを望んでおり、これらのIDに適合するページは関連性の高いデータを示しています – aditya

+0

@aditya、私は私の投稿を更新しました...それはあなたが探しているものですか? –

0

オブジェクトのコレクションがある場合は、各オブジェクトを個別に表示でき、1つのビューですべてのオブジェクトを処理できるようにする必要があります。さて、あなたのオブジェクトのリストが実際にあなたのデータベースに格納されているすべてのオブジェクトであることを期待しています。したがって、すべてのオブジェクトのリストを返すアクションが1つあります。 Elite Gentlemanの例を使用して、リスト内の各項目のリンクを生成することができます。そのリンクは、オブジェクトのデータベースIDをコントローラーに渡して別のエンドポイントに送られます。そのコントローラはそのIDでオブジェクトを取得し、そのオブジェクトを使用してビューをレンダリングします。ここでは例です:

// Your 'index' action 
@RequestMapping('myObjectType/index/') 
public ModelAndView index() { 
    List<MyObject> list = // Get your objects from the database 
    return new ModelAndView("index", "list", list); // insert your list into the MAV 
} 

// Your 'show' action 
@RequestMapping('myObjectType/show/{id}') 
public ModelAndView show(@PathVariable("id") String id) { 
    MyObject obj = // Get your object from the database from the id param 
    return new ModelAndView("show", "obj", obj); 
} 

だからあなたのindex.jspに、あなたはあなたのリストオブジェクトを反復処理し、オブジェクトのidを渡して「ショー」のエンドポイントを指すコレクション内の各アイテムのリンクを作成します。次に、show.jspには、返されたオブジェクトに関する情報を表示します。

希望に役立ちます。