2009-04-08 66 views
3

我是新来的Java portlets,并试图弄清楚这些工作在相当基本的层次上是如何工作的。简单的portlet jsp页面流问题

我现在很困惑如何在我的portlet中有多个“视图”。假设我的portlet将用于CRUD操作。为了简单起见,我想象当用户第一次查看portlet时,他们会看到一个包含数据库所有记录的表。然后用户可以点击一个记录,该记录将在portlet中显示一个包含更新记录的表单的新页面。添加记录的方式大致相同。没有什么令人震惊的在这里...

我在哪里可以控制用户不同的视图之间如何导航,以及我在哪里了不同的操作,用户可能执行(更新,添加,删除等)之间切换?

我在网上看了一遍,发现了大量的“hello world”portlet教程,这些都没有什么帮助。我发现许多其他教程更加先进,并且适合我正在做的事情,但他们似乎都使用了像Struts,JSF等底层框架。

我想知道如何制作仅使用基于JSP的呈现视图的基本Portlet进行工作。

回答

5

Portlet API (JSR-168)是你需要寻找的。这将向您解释视图如何由Portlet容器管理,如何呈现Portlet以及如何映射操作。

有限公司

  • Portlet交互始终是两相 - 动作和渲染 - 而Web服务器的交互始终是单相;
  • 在一个标准的Web应用程序中,表单被提交给在html表单标签的action字段中指定的servlet。在JSR-168 portlet中,HTML表单的动作URL是使用actionURL portlet标记生成的,例如, <form action="<portlet:actionURL/>" method="post">
  • 提交HTML表单结果在调用的processAction(的ActionRequest aRequest,ActionResponse的aResponse)一个portlet的方法
  • servlet被允许做包括,转发和重定向; portlet只允许包含。
  • Servlets可以渲染一个完整的页面,Portlet只渲染页面片段。
  • 等等
+0

是的,我明白了。但是如果我有三个JSP,每个都有不同的表单。他们是否都在我的portlet中触发相同的processAction函数,然后我只是根据....切换一些隐藏的表单域或其他东西? – Boden 2009-04-08 22:43:01