java - 如何使用 Liferay MVC Portlet 准备 View jsp

标签 java jsp liferay portlet liferay-6

我必须为 Liferay Portal 编写一个 portlet。 Liferay 提供了方便的 MVCPortlet 类,它允许使用 标签的“name”属性对操作阶段使用简单路由,并使用 标签的 mvcPath 参数对 View 阶段使用简单路由。不过,我怀念的是为渲染阶段准备 View 的能力。例如,从数据库加载一些实体以供 JSP 引用。

我知道我可以在 JSP 中包含 Java 代码,但这被认为是不好的做法。

我使用 Liferay 6.1。

最佳答案

有不止一种方法可以满足您的需求。

  1. 确保在呈现特定页面之前调用特定操作。在那里获取资源,并将它们作为渲染参数传递,以便 jsp 可以获取它们。实际上,您将使用操作重定向到不同的页面
  2. 重写渲染函数,检查将加载的页面,并在渲染的 jsp 需要时获取资源
  3. 使用 jsp 中的资源阶段来调用所需的资源。

另请务必了解 2-phase (实际上是 3 阶段,如果你也算上资源阶段)MVCPortlet 的架构。

现在,关于保持 jsp 代码干净......我不确定 MVCPortet 是否可以帮助您做到这一点。我从未见过没有在 jsp 代码中注入(inject) java 片段的 mvcPortlet 项目。例如,您必须使用 java 代码来读取请求属性

关于java - 如何使用 Liferay MVC Portlet 准备 View jsp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20322370/

相关文章:

java - Java MVC 模式中的变量声明约定/规则?

java - 对 servlet 映射感到困惑

Liferay freemarker 模板 - 在列表中使用索引

java - Liferay 和注册确认页面

templates - 在 Velocity 模板中读取 cookie

java - 负载均衡器的信号问题

java - 使用自己的 FXML 动态加载新选项卡

mysql - 使用JSP从MySQL数据库导出Excel

java - java Swing中是否有像FrameLayout(Android)这样的概念?

java - 如何避免在 Web 应用程序中对字符串进行硬编码