JSF MVC 框架中的 MVC 是什么组件?

2024-01-08

JSF MVC框架中谁是模型、视图和控制器?


这取决于观点(双关语)。

在总体架构图中,您自己的 JSF 代码是V:

M- 业务领域/服务层(例如EJB/JPA/DAO)
V- 您的 JSF 代码
C- FacesServlet

在开发人员图中,架构V又可分为如下:

M- 实体
V- Facelets/JSP 页面
C- 托管bean

在较小的客户图中,开发人员V又可分为如下:

M- JSF组件树
V- 渲染的 HTML 输出
C- 客户端(网络浏览器)

在更小的 JavaScript 图片中,客户端V又可分为如下:

M- HTML DOM 树
V- 视觉呈现
C- 事件侦听器功能(最终用户交互和 Ajax)

所以它基本上是一个 M(M(M(MVC)C)C)C ;)

请注意,一些初学者甚至一些非常基础的教程会混合/复制/展平托管 bean 中的实体属性,这将有效地使控制器成为一个模型。不用说,这是一个糟糕的设计(即不是一个干净的 MVC 设计)。

以下答案中的代码片段说明了正确的 MVC 方法:

  • JSF 控制器、服务和 DAO https://stackoverflow.com/questions/30639785/jsf-controller-service-and-dao
  • 为实体创建主从页面、如何链接它们以及选择哪个 bean 范围 https://stackoverflow.com/questions/8459903/creating-master-detail-pages-for-entities-how-to-link-them-and-which-bean-scope
  • 将 JSF2 管理的 pojo bean 传递到 EJB 中或将所需内容放入传输对象中 https://stackoverflow.com/questions/9246141/passing-a-jsf2-managed-pojo-bean-into-ejb-or-putting-what-is-required-into-a-tra/9249012#9249012
  • 过滤器不初始化EntityManager https://stackoverflow.com/questions/7934447/filter-do-not-initialize-entitymanager/7934604#7934604
  • 小 Facelet 应用程序中的 javax.persistence.TransactionRequiredException https://stackoverflow.com/questions/16526267/javax-persistence-transactionrequiredexception-in-small-facelet-application/16542568#16542568

书中Java EE 8 中的 JSF 权威指南 https://rads.stackoverflow.com/amzn/click/com/1484233867,第 8 章“支撑豆”,第 276 页,以及Jakarta EE 10 中的 Jakarta Faces 权威指南 https://rads.stackoverflow.com/amzn/click/com/B09VNVZYP6,第 8 章“支持 Bean”,第 288 页,下面的维恩图用于说明支持 Bean 在与 JSF 开发人员相关的上下文中的 MVC 范例中的位置。版权免责声明:上述书籍为本人所写,图片为本人创作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSF MVC 框架中的 MVC 是什么组件? 的相关文章

  • Android Toast 消息不起作用

    我正在通过 Andengine 为 Android 开发游戏 我有 MainActivity 类和 GameScene 类 我在 GameActivity 中使用 Toast 消息 它正在发挥作用 Toast makeText this H
  • 不支持的字段:将瞬间格式化为日期 ISO 时的年份[重复]

    这个问题在这里已经有答案了 我正在尝试将 Instant 格式化为 ldap 日期 ISO8601 但在 f format Instant now 处失败 String input 20161012235959 0Z DateTimeFor
  • 如何删除django中级联的一对一相关模型?

    背景 我在 Django 1 8 5 中定义了以下模型 class PublishInfo models Model pass class Book models Model info models OneToOneField Publis
  • 如何在 Kotlin 中的数据类上实现空对象模式?

    我有一个 Kotlin 数据类 data class PaymentAccount val accountId Int val accountNumber String val title String 这就是我在 Java 中要做的事情
  • java 中的梵文 i18n

    我正在尝试使用来自互联网的示例 ttf 文件在 java 中使用 i18n 进行梵文 印地文 我可以加载资源包条目 还可以加载 ttf 并设置字体 但它不会根据需要呈现 jlabel 它显示块代替字符 如果我在 Eclipse 中调试 我可
  • 垂直 ViewPager 中的动画

    我需要垂直制作这个动画ViewPager https www youtube com watch v wuE 4jjnp3g https www youtube com watch v wuE 4jjnp3g 这是我到目前为止所尝试的 vi
  • Apache Thrift Java-Javascript 通信

    我正在编写一个基于 Apache Thrift 的 Java 服务器 它将从 Javascript 客户端接收数据 我已经完成了 Java 服务器 但问题是我可以获得 Javascript 客户端的工作示例 我无法找到一个好的示例 构建文档
  • 未注入带有 JPA2 的 Apache Ignite 2.7 IgniteRepository

    使用在 Web 上建立的 guildes 我使用 Spring Data JPA 2 应用程序制作了简单的 Spring Boot 2 仅在 2 7 版本中才向 Apache Ignite 添加了 Spring Boot JPA 2 支持
  • 使用 kryo 注册课程的策略

    我最近发现了 kryonet 库 它非常棒并且非常适合我的需求 然而 我遇到的一个问题是制定一种好的策略来注册所有可以转移的类 我知道我可以在每个对象中编写一个静态方法 该方法将返回它使用的所有类的列表 但我真的不想这样做 为了我自己的时间
  • java项目中无法加载类“org.slf4j.impl.StaticLoggerBinder”错误? [复制]

    这个问题在这里已经有答案了 我越来越Failed to load class org slf4j impl StaticLoggerBinder 错误 我想将记录器写入文件 所以我使用了 log4j jar 并使用 apache tomca
  • 使用 Jena 查询维基数据

    目前 Wikidata 有一个 SPARQL 端点 https query wikidata org https query wikidata org 我想使用 Jena 3 0 1 查询此网站 我使用以下代码 但收到错误消息 端点返回的
  • Java 中如何验证字符串的格式是否正确

    我目前正在用 Java 编写一个验证方法来检查字符串是否是要更改为日期的几种不同格式之一 我希望它接受的格式如下 MM DD YY M DD YY MM D YY 和 M D YY 我正在测试第一种格式 每次它都告诉我它无效 即使我输入了有
  • java中如何重新初始化int数组

    class PassingRefByVal static void Change int pArray pArray 0 888 This change affects the original element pArray new int
  • ActiveMQ JNDI 查找问题

    尝试使用 JNDI 运行以下 ActiveMQ http activemq apache org jndi support html http ActiveMQ 20JNDI 并且我的 jboss server node lib 文件夹中有
  • 使用 Guava Ordering 对对象列表进行多条件排序

    我有一个类无法实现可比较 但需要根据 2 个字段进行排序 我怎样才能用番石榴实现这一目标 假设班级是 class X String stringValue java util Date dateValue 我有一个清单 List
  • Java HashSet 是线程安全的只读吗?

    如果我通过 Collections unmodifyingSet 运行 HashSet 实例后 它是线程安全的吗 我问这个是因为 Set 文档声明它不是 但我只是执行读取操作 来自 Javadoc 请注意 此实现不是同步的 如果多个线程同时
  • JPA Web 应用程序管理策略

    我们目前正在开发一个 J2EE Web 应用程序 使用 JPA 作为我们的数据访问层 我们目前正在研究几种不同的策略来在我们的应用程序中利用缓存 Create an EntityManager per request 在请求范围内获取缓存
  • Hibernate 标准接受 %% 值

    我正在使用下面的 Hibernate 代码来过滤workFlowName crt add Restrictions like workFlowName workFlow MatchMode ANYWHERE crt is the crite
  • 在java中执行匿名pl/sql块并获取结果集

    我想执行匿名 PL SQL 并需要获取结果集对象 我得到了可以通过在 PL SQL 块内使用游标来完成的代码 但 PL SQL 块本身将以文本形式来自数据库 所以我无法编辑该 PL SQL 块 并且它只会返回两个值 其列名始终相同 它将返回
  • 检查按钮是否可用?如果没有,请等待 5 秒钟,然后再次检查?

    基本上我想看看此刻是否可以单击按钮 如果没有我想再试一次 所以我需要某种 goto 函数来返回到代码的前一行 尽管我怀疑我写得非常糟糕 但它本来可以做得更容易 try driver findElement By xpath button i

随机推荐

  • 在 Terraform 中使用“execute”插值声明变量

    我想将一个变量的子字符串声明给另一个变量 我测试了使用 terraform 控制台获取子字符串 gt echo element split 10 250 3 0 24 2 terraform console gt 3 我的子网是 10 25
  • 更改树莓派蓝牙设备名称?

    我正在尝试将树莓派的蓝牙名称更改为其他名称 IP 地址 以便当我扫描并配对我的 Android 设备时 它将将此 IP 视为设备名称 它工作过一次 但随后又返回显示为 raspberrypi 0 我已经尝试了 hciconfig set n
  • Android Lollipop 成为设备管理员不起作用

    我正在跟进本指南 http developer android com guide topics admin device admin html关于如何让我的应用程序请求成为设备管理员 这适用于任何 4 x android 版本的任何手机
  • 为什么构建 liblzma 失败并显示“找不到库”?

    我从他们的网站安装了 mingw 我安装了带有 iconv 和 intl msys 和所有其他东西的开发人员包 I run configure进而make install 链接时 它打印 src liblzma liblzma la lin
  • 从某个节点打开事件查看器

    打开显示特定节点详细信息的 Windows 事件查看器的命令是什么 例如 如果我只是使用eventvwr命令 它会打开选 择根节点的 UI 我想Application打开时选择的节点或任何其他节点 可以通过编程方式配置吗 Thanks 要查
  • 如何在 Flask-SQLAlchemy 中同时设置一对多和一对一关系?

    我试图在 Flask SQLAlchemy 中同时创建一对一和一对多关系 我想实现这个目标 一个群组有许多成员和一名管理员 这是我所做的 class Group db Model id db Column db Integer primar
  • iPhone - 将 CTFont 转换为 UIFont?

    我正在尝试将 CTFont 转换为 UIFont 而不丢失任何样式和属性 例如 字体名称 字体大小 字体颜色 下划线 Bold Italic etc CTFontRef ctFont NSString fontName NSString C
  • CSS:如何让输入字段自动调整其宽度

    我有一个名为包装器的 div 它使用 margin 属性水平居中 该包装器的宽度是固定的 在该包装器内 我有一个 a 标签 后跟一个输入字段 我正在寻找的是让输入字段的宽度自动调整为右侧的剩余宽度 直到包装器的边框 我想避免以像素为单位定义
  • JavaFX TableView 中的属性绑定不起作用

    我跟踪了许多链接并找到了在表视图中显示复选框的解决方案 但我无法更改表视图中复选框的值 我关注的链接 如何在 JavaFX 中将复选框添加到 TableView https stackoverflow com questions 72176
  • 更改 3D 绘图的垂直 (z) 轴的位置

    我正在 Python 中使用 Matplotlib 绘制一些 3D 曲面图 并注意到一个恼人的现象 根据我设置视点 相机位置 的方式 垂直 z 轴在左侧和右侧之间移动 下面是两个例子 示例 1 轴左 http i imagebanana c
  • 如何在flutter中使用工作管理器运行后台进程?

    我想使用 Flutter Workmanager 我在 kt 中做了引用的配置 如下所示 package com example mybackprocess import be tramckrijte workmanager Workman
  • Android“后退”按钮操作

    我可以将默认 Android 后退 按钮的操作分配给另一个按钮吗 我的意思是 无需编写代码 是否有预定义的 返回 方法 Thanks 按钮添加的onClickonBackPressed public void onClick onBackP
  • 在命令行上获取 git-commit-ids

    跑步时git commit fixup beefca7e或者当在提交消息中引用先前的提交时 我必须在笨拙的工作流程中使用鼠标 我使用bash 打开一个新的终端选项卡 窗口 窗格 git log oneline graph 扫描列表以查找相关
  • 如何增加UIProgressView的高度

    我正在创造UIProgressView from nib 我想增加它的高度 但它固定为 9 对于iPad我需要增加它的高度 怎样才能做到呢 使用 CGAffineTransform 更改尺寸 CGAffineTransform transf
  • 哪个先出现——finally 还是 catch 块?

    考虑以下测试用例 public class Main static int a 0 public static void main String args try test System out println test2 catch Ex
  • 获取 og:image 元属性的最佳方法是什么[重复]

    这个问题在这里已经有答案了 我正在尝试在我的网站中显示 rss feed 链接 一切顺利 但需要很长时间才能获得og image财产通过使用file get contents 方法 还有其他方法可以获取元标记属性吗 Python 有助于更快
  • 如何将 JSONObject 转换为自定义 Java 类?

    在Java中 使用 json simple https code google com p json simple 我已经成功解析了使用 JSON stringify 在 JavaScript 中创建的 JSON 字符串 它看起来像这样 t
  • 所有 SuppressWarnings 值? [复制]

    这个问题在这里已经有答案了 如果有一个包含可以与 java 中的 SuppressWarnings 一起使用的所有值的列表 那就太好了 如果这些值取决于编译器 可以说 netbeans 中的 ant 那么 ant 不应该提供所有支持值的完整
  • 执行 expo build:ios 时 Apple Developer Portal 中的身份验证失败

    我正在尝试自动配置通过 Gitlab CI 使用 Expo 构建 iOS 应用程序 这是我正在使用的命令 expo login u expo user p expo pass expo build ios non interactive a
  • JSF MVC 框架中的 MVC 是什么组件?

    JSF MVC框架中谁是模型 视图和控制器 这取决于观点 双关语 在总体架构图中 您自己的 JSF 代码是V M 业务领域 服务层 例如EJB JPA DAO V 您的 JSF 代码 C FacesServlet 在开发人员图中 架构V又可