2013-06-27 114 views
-1

我知道在理论上是什么意思MVC,但我从来没有与这个model.In开发我的servlet我从数据库中获取列表使用MVC模式与JSP

int pageSize = 20; 
     FetchOptions fetchOptions = FetchOptions.Builder.withLimit(pageSize); 

     Query q = new Query("post").addSort("time", SortDirection.DESCENDING); 
     PreparedQuery pq = datastore.prepare(q); 

     QueryResultList<Entity> results = pq.asQueryResultList(fetchOptions); 
     System.out.println("-------------------"); 
     for (Entity entity : results) { 

System.out.println(entity.getProperty ("content")); 
System.out.println(entity.getProperty ("time")); 
     } 

现在我要显示这样的结果(内容和时间)在jsp页面中。我不知道要这样做,因为我认为我不能使用PrintWriter,因为jsp页面已经包含了所有的CSS,表单,我认为如果我将这些代码(从数据库中获取数据)放入该jsp页面,这将是一个违规,它不会是一个MVC模型?

回答

2

对,将代码放入JSP将违反MVC模式,因为您将控制器代码放在视图中。

如果是这样的servlet代码,不是你应该做的:

request.getRequestDispatcher("page.jsp").forward(request, response); 
          ^path to your page 

此外,你应该将数据添加到会话

request.getSession().setAttribute("content", results); 

在JSP页面中,你刚才读这个数据。

+0

根据您的需要使用页面/请求/会话/应用程序上下文。 –

+0

进入页面后,可以使用JSTL的foreach循环和表达式语言来访问要显示的属性 – sunrize920

0

正如另一个答案所说,如果您将该代码放入JSP中,它将违反MVC模式,您可能需要重新考虑您的项目设置,并使用类似Struts的系统将您的实体文件链接到JSP,这似乎是一个漂亮常见的方式去处理事情,有很多关于它的文档在这个网站和网络周围的其他地方,一个好的开始可能是http://struts.apache.org/release/2.0.x/docs/home.html

我特别知道你似乎试图做什么Struts系统它会像

<s:property value="variable" /> 

然后,这将保持你的模型,并查看分开。