当前位置: 首页 > 面试题库 >

JSF 2:直接调用托管bean

夹谷晋
2023-03-14
问题内容

我是JSF的新手(2)。

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

在JSF中如何做同样的事情?(我知道如何从.xhtml调用操作),即直接从URL调用托管bean并获取结果页面。


问题答案:

您要询问的模式并不是JSF工作方式的真正本机。

像Struts和Spring MVC这样的基于请求的框架,以及较旧的基于Model-2 Servlet / JSP的方法都可以像这样工作。

在JSF中,首先是自动映射到请求URL的页面(视图)。没有直接映射到URL的bean的概念,也没有具有与视图强制采用1:1关系的框架的bean的概念。虽然有支持bean的概念,但这是按照惯例。对于JSF,所有bean都是“助手bean”,仅被视图引用。

BalusC在他的回答中概述了当今可用于从JSF中基于请求的框架中获取某些行为的流行方法。JSF
2.2将通过引入视图操作来稍微扩展对这种支持的支持,该操作将规范该工具的一些典型用例preRenderViewEvent

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

对于此用例,可以忽略JSF将URL绑定到(Facelets)视图的事实,实际上,您可以让Bean直接响应请求。尽管出于稍微不同的目的,但这实际上是我通过重写所谓的视图处理程序对JavaVDL所做的工作。

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



 类似资料:
  • 问题内容: 我只是试图通过添加滚动视图来增加在此布局中滚动的能力,但是每次尝试加载布局时,我都会收到一条错误消息,指出“ java.lang.IllegalStateException:ScrollView只能容纳一个直接子代”,并且我不确定为什么。 任何建议,不胜感激。 资源: 编辑(响应CodeMagic的回答) 问题答案: 正如错误所言 将s 包裹在a 的内部,因此只有as作为直接子代。 来

  • 通常,默认范围是请求范围。我曾尝试删除范围注释,并希望bean具有请求bean作用域行为(通过在前一页返回提交的值,我记得我过去曾尝试过,效果很好),但我没有得到与之相关的表达式语言。那么默认范围是什么,为什么不是相同的行为?!

  • 问题内容: 我正在尝试使用jQuery_.on() 方法来理解 _直接 事件处理程序和 委托 事件处理程序之间的特殊区别。具体来说,本段的最后一句话: __ 当被提供时,事件处理程序被称为委托。当事件直接发生在绑定元素上时,不调用处理程序,而仅对与选择器匹配的后代(内部元素)进行调用。jQuery使事件从事件目标一直冒泡到附加了处理程序的元素(即,最内层元素到最外层元素),并沿该路径运行与选择器匹

  • 托管 本页告诉你如何在自己的服务器上托管 .crx文件。如果你仅仅通过Chrome Web Store发布扩展,应用,或者主题那么你不需要本页。取而代之的是查阅Chrome Web Store帮助和开发者文档。 注意:如果你已经把扩展发布到扩展库,扩展就会合并到Chrome Web Store里。 按照惯例, 无论是Chrome Web Store还是特定服务器所提供的扩展, 可安装的web ap

  • 托管bean它是一个纯Java类,它包含一组属性和一组,方法。 以下是托管bean方法执行的常见功能: 验证组件的数据 处理组件触发的事件 执行处理以确定应用程序必须导航的下一页 它也可以作为JFS框架的模型。 JSF托管Bean示例 请看看下面一段示例代码 - 您可以通过以下方式使用此。 通过配置成XML文件。 通过使用注释。 通过XML文件配置托管Bean 在xml文件配置是比较旧方法。 在这