-1

我知道理论上 MVC 是什么意思,但我从来没有用这个模型开发过。在我的 servlet 中,我从数据存储区得到一个列表

 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模型?

4

2 回答 2

2

没错,将代码放到 JSP 中会违反 MVC 模式,因为您将控制器代码放入视图中。

如果这是 servlet 代码,那么您应该这样做:

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

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

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

在 jsp 页面中,您只需读取此数据。

于 2013-06-27T17:42:10.310 回答
0

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

我特别知道您似乎正在尝试使用 Struts 系统做的事情,就像

<s:property value="variable" />

那么这将使您的模型和视图分开。

于 2013-06-27T17:50:53.440 回答