2010-12-10 69 views
0

有1个jsp页面说view.jsp,所以通过spring将它渲染为view.htm,好吧,这很好,但现在我想传递一个列表给它,并根据给定的id从列表中,view.htm更改为view.htm/{id}但如果我有100个数据,那么我是否需要100个jsp页面?如何通过弹簧来解决此问题spring jsp查看问题

回答

2

您可以在请求中添加列表并在您的view.jsp中遍历它。

像这样(夸张的例子),

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

现在,您可以使用JSTL来遍历它...在view.jsp

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

</c:if> 

或者,我不是很明白你的理解吗?根据你的问题


编辑,您仍然可以通过列表上的数据进行迭代,并创建一个追加数据ID到view.htm锚标记。

的东西,像(伪代码)

$ {} someData.description

someData被替换datas因为穿上的第一篇文章。锚标签将位于<c:if>标签内,因此如果数组中有100个项目,则会有100个锚标签。

+0

不,不是我不问,我想要的东西像视图/ 123,视图/ 124,视图/ 125和accoriding这些id页面显示相关数据 – aditya 2010-12-10 11:23:14

+0

@aditya,我已更新我的帖子...你在找什么? – 2010-12-10 11:27:56

0

所以,如果你有一个对象集合,你希望能够单独查看每个对象,并且你希望一个视图能够处理所有这些。好的,我希望你的对象列表实际上是存储在数据库中的所有对象。所以你有一个动作返回所有对象的列表。您可以使用The 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中,你只需显示你想要返回的对象的任何信息。

希望有所帮助。