2010-12-10 16 views
0

gibt es 1 JSP-Seite sagen view.jsp, so über den Frühling wird es als view.htm gerendert, ok, das ist in Ordnung, aber jetzt möchte ich eine Liste zu übergeben, und nach der angegebenen ID Von der Liste ist die view.htm auf view.htm/{id} umgestellt, aber wenn ich 100 Daten habe, brauche ich dann 100 Jsp Seiten ?? Wie kann ich dies über Feder behebenFrühling jsp Ansicht Problem

Antwort

2

Sie können die Liste in der Anfrage hinzufügen und iterieren Sie in Ihrem view.jsp.

wie so (übertriebenes Beispiel),

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

Jetzt können Sie JSTL verwenden, um über sie zu durchlaufen ... in view.jsp.

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

</c:if> 

Oder habe ich dich nicht richtig verstanden?


bearbeiten auf Ihre Frage basiert, können Sie immer noch durch die Daten auf der Liste durchlaufen und ein Anker-Tag erstellen, die die Daten-ID an den view.htm anhängt.

etwas, wie (in Pseudo-Code)

$ {someData.description}

Wo someData die datas ersetzt wird als auf den ersten Pfosten gesetzt. Das Anker-Tag befindet sich innerhalb des Tags <c:if>. Wenn Sie also 100 Elemente in einem Array haben, haben Sie 100 Anker-Tags.

+0

nein nein, dass ich nicht frage, ich will so etwas wie view/123, view/124, view/125 und entsprechend diesen id die seiten zeigt die relatiiven daten – aditya

+0

@aditya, ich habe meine post aktualisiert ... Ist das wonach Sie suchen? –

0

Wenn Sie also eine Sammlung von Objekten haben, möchten Sie in der Lage sein, jedes Objekt einzeln anzuzeigen, und Sie möchten, dass eine Ansicht mit all dem umgehen kann. Ok, ich hoffe, dass deine Liste von Objekten tatsächlich alle Objekte sind, die in deiner Datenbank gespeichert sind. Sie haben also eine Aktion, die eine Liste aller Objekte zurückgibt. Sie können das Beispiel des Elite Gentleman verwenden, um für jedes Element in der Liste einen Link zu generieren. Diese Verbindung wird an einen anderen Endpunkt übergeben, wobei die Datenbank-ID des Objekts an den Controller übergeben wird. Dieser Controller ruft das Objekt mit dieser ID ab und rendert die Ansicht mit diesem Objekt. Hier ein Beispiel:

// 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); 
} 

Also in Ihrem index.jsp, Sie über Ihre Liste Objekt iterieren und einen Link für jedes Element in der Sammlung erstellen, die auf die ‚Show‘ Endpunkt verweist in der ID des Objekts übergeben. Dann zeigen Sie in Ihrer show.jsp einfach die gewünschten Informationen über das zurückgegebene Objekt an.

Hoffe, dass hilft.