java - JSF 2 : invoking managed bean directly

标签 java jsf jsf-2

我是 JSF (2) 的新手。

在 Struts 中,我们可以从像 app.action 这样的 URL 调用一个 Action 。这将调用一个操作并返回一个结果页面,比如一个 JSP(最初没有 JSP/HTML)。

如何在 JSF 中完成同样的事情? (我知道如何从 .xhtml 调用一个 Action ) IE。直接从 URL 调用托管 bean 并获取结果页面。

最佳答案

您所询问的模式并不是 JSF 工作方式的原生模式。

基于请求的框架,如 Struts 和 Spring MVC ,而旧的基于 Model-2 Servlet/JSP 的方法确实是这样工作的。

在 JSF 中,首先是自动映射到请求 URL 的页面( View )。没有直接映射到 URL 的 bean 的概念,也没有框架强制与 View 1:1 关系的 bean 的概念。虽然有支持 bean 的概念,但这是约定俗成的。对于 JSF,所有 bean 都是仅由 View 引用的“helper bean”。

BalusC 在他的回答中概述了当今可用于从 JSF 中基于请求的框架获取某些行为的流行方法。 JSF 2.2 将通过引入 view actions 稍微扩展这种支持。 ,它形式化了 preRenderViewEvent 的一些典型用例。

也就是说,JSF 是一个非常灵活的框架,几乎没有什么是一成不变的。许多 JSF 的行为都可以通过精心设计的插件和装饰器系统进行替换或添加。

对于这个用例,JSF 将 URL 绑定(bind)到 (Facelets) View 这一事实可以被覆盖,实际上您可以让 bean 直接对请求使用react。虽然目的略有不同,但这是我为 JavaVDL 所做的。 ,通过覆盖所谓的 View 处理程序。

您必须问问自己这是否真的是您想要做的,如果您想以这种方式工作,JSF 是否是您的最佳选择。但是通过 JavaVDL ( sourcecode here ) 中概述的方法,您应该能够做到这一点。请注意,最后一种方法不适合初学者,如果您想自己实现它,则需要大量的 JSF 经验。 (如果您或其他任何人想要拥有此功能,请考虑在 OmniFaces issues list 为其创建问题)

关于java - JSF 2 : invoking managed bean directly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13488832/

相关文章:

jsf - Primefaces Jsf刷新更新p选项卡id的内容

jsf - 在 primefaces 中进行单元格编辑后,CellEdit 事件不起作用

javascript - JSF EL 表达式为 JavaScript 中的汉字呈现问号 (?)

java - Java 和 JSF 2.0 是嵌入式使用的可行替代方案吗?

jsf-2 - 如何在Backbase Portal 5.2.1.2 中实现JSF?

java - 如何向 GWT 的 SERVER 端添加异常处理程序?

Java 代理发现 Bot

java - 启动 Eclipse Spring Boot 时出错。 - Java 已启动但返回退出代码=13

java - 如何关联两个 selectManyListbox?

java - 使用 StyledDocument.insertString 将富文本附加到 JTextPane 不会保留字体