【发布时间】:2012-04-25 13:55:34
【问题描述】:
我正在使用模型/视图/控制器样式来构建 Web 应用程序,方法是将传入的 HttpRequest 路由到用 Java 编写的控制器 Servlet,然后当 Servlet 完成时,让它使用 .jsp 文件渲染回视图。 (这非常符合 Rails 风格。)
这样做需要在 Controller Servlet 的末尾有这样一行:
getServletContext().getRequestDispatcher("/Bar.jsp").include(req, res);
主要问题是我想将参数传递给 Bar.jsp,就好像它是我正在调用的函数一样。如果这不可能,我最终会在 Bar.jsp 的顶部放置大量 Java,以找出 Bar.jsp 需要呈现自己的所有内容,这相当难看。
其他 web 框架提供了一种方法来做到这一点,所以似乎必须有一种方法来使用 Servlet 来做到这一点。特别是我正在使用 Java Google App Engine。
【问题讨论】:
-
不能将JSP页面作为函数调用,因为初始化和实例化的方式是由Servlet Container完成的。您可以做的是包含从 JSP 生成的响应,而不是作为方法。除了在 JSP 中创建少数成员引用之外,如果您调用了 JSP,我看不到任何挑战。
-
您的回复对我来说没有任何意义。我希望 .jsp 文件能够以某种方式访问 Servlet 创建的一些 Java 对象。
-
您可以按照 Alonso Dominguez 的建议使用 POJO,创建公共 bean 对象并作为参数传递。
-
只是好奇,大多数框架都使用前向视图。你真的有一些包含你的包含的视图内容吗?
标签: java google-app-engine servlets