jsf动态改变托管bean

2024-01-30

如何动态更改托管 bean 的“value”属性?例如,我有 h:inputText,并且根据输入的文本,托管 bean 必须是 #{studentBean.login} 或 #{lecturerBean.login}。简化形式:

<h:inputText id="loginField" value="#{'nameofbean'.login}" />

我尝试嵌入另一个 el 表达式而不是“nameofbean”:

value="#{{userBean.specifyLogin()}.login}"

但没有成功。


多态性应该在模型中完成,而不是在视图中完成。

E.g.

<h:inputText value="#{person.login}" />

with

public interface Person {
    public void login();
}

and

public class Student implements Person {
    public void login() {
        // ...
    }
}

and

public class Lecturer implements Person {
    public void login() {
        // ...
    }
}

最后在托管 bean 中

private Person person;

public String login() {
    if (isStudent) person = new Student(); // Rather use factory.
    // ...
    if (isLecturer) person = new Lecturer(); // Rather use factory.
    // ...
    person.login();
    // ...
    return "home";
}

否则,每次添加/删除不同类型时都必须更改视图Person。这个不对。

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

jsf动态改变托管bean 的相关文章

随机推荐

  • 使用 JAX-RS Jersey 2 和 Grizzly 的 Swagger 文档

    我已经使用 JAX RS 实现了 Rest Web 服务 该功能不相关 现在我想使用 Swagger 生成其文档 我已按照以下步骤操作 1 In build gradle我得到了我需要的所有依赖项 compile org glassfish
  • Scala 中生成代码的性能和缓存

    我需要在运行时生成特征的实现 然后在特征的实例上执行已知方法 在这个例子中我正在运行A s a method import reflect runtime universe tools reflect ToolBox package p t
  • 无法在 Bluemix 中找到应用程序密钥和应用程序秘密。代替这些,可以使用应用程序 GUID

    我已经为我的 Android 应用程序创建了一个移动样板 但无法在 Bluemix 中找到应用程序密钥和应用程序秘密 除了这两个之外 还可以使用应用程序 GUID 任何人都可以帮助我 如何使用 APP GUID 初始化 IBMBluemix
  • 如何在软件包安装中包含(脚本构建的)库?

    我正在制作一个Python包 它有一个C 扩展模块和它需要的其他人的共享库 我希望一切都可以通过安装pip 我现在的setup py当我使用时文件有效pip install e 但是当我不使用开发模式时 即省略 e I get 无法打开共享
  • 在 R 帮助中搜索“for”和“repeat”循环帮助文件

    我正在尝试加载描述这些 功能 的页面 然而 Windows中的R控制台似乎讨厌我 它只是返回 for repeat for是一个保留字 如果你想查找它 你必须使用反引号 for
  • Javascript 从出生日期开始计算年龄

    我正在传递我选择的日历date of birth使用以下 JS 函数来计算年龄 var DOBmdy date split Bdate new Date DOBmdy 2 DOBmdy 0 1 DOBmdy 1 BDateArr Bdate
  • 如何从 c# 中的向量 3 列表中删除向量以实现统一

    我正在努力从向量三列表中删除向量 我试图在从列表中随机选择的位置生成一个盒子 然后我需要从列表中删除该项目 以便两个盒子不会在同一位置生成 我已经尝试过RemoveAt和Remove 使用向量 但没有工作 任何帮助将非常感激 void St
  • 如何确保 yum install 在 shell 脚本中成功?

    我有一个 shell 脚本 它检查是否有互联网连接 通过 ping google 然后调用 yum install packageA packageB assumeyes 我如何确认软件包已安装 或已经安装 我是否再次进行 yum 调用并解
  • WebAPI 2.2 OData v4 [EnableQuery] 适用于何处?

    截至 2015 年 1 月 应用 EnableQueryAttribute 的正确 错误在哪里 该文档链接如下 http www asp net web api overview odata support in aspnet web ap
  • 运动模拟游戏的动态如何运作?

    我想制作一款棒球模拟游戏 这些体育管理游戏是靠运气吗 完全靠运气的管理游戏并不公平 但也不能太可预测 这些游戏背后的逻辑是如何运作的 这都是关于概率和统计的 您根据指定的某些属性设置某事发生的机会 然后在游戏过程中加入随机因素 使事情变得更
  • 是否可以运行不在文件中的node.js脚本?

    我需要使用 C 应用程序中的 node js 运行 javascript 代码 但我不想之前将代码保存到文件中 是否可以直接将代码转发到node exe 而不将其临时保存到文件中 是的 您可以使用 eval 标志来运行代码 node eva
  • Flutter如何画半圆(半圆)

    怎样才能画出这样的半圆呢 Code class DrawHalfCircleClipper extends CustomClipper
  • evt.preventDefault(); 的反义词是什么

    一旦我解雇了evt preventDefault 如何再次恢复默认操作 根据 Prescott 的评论 相反 evt preventDefault 可能 本质上等于 默认 因为我们不再阻止它 否则 我倾向于向您指出其他评论和答案提供的答案
  • Eclipse 显示奇怪的 [DEBUG],我想禁用它

    根据下面的代码 我将程序的每一个细节都作为调试来获取 我想将其删除 运行应用程序时是否花费太多时间 我怎样才能禁用那些 DEBUG 2012 01 24 18 47 25 305 ERROR SqliteDatabaseType WARNI
  • 如何制作 tiff z-stack 保存或添加元数据?

    我有许多 tiff 文件 我想使用 python 将它们合并到 z 堆栈中 各个文件都有我想保存的元数据 OME https www openmicroscopy org site support ome model ome tiff 在我
  • 如何将查询参数重写为 Apache 中的路径参数?

    我目前有一个网站 正在尝试在搜索引擎优化方面进行优化 我的网站使用以下 URL 域名 com app about 在我的应用程序中 GET app 正如预期的那样 设置为 关于 现在 我想让这样的 URLdomain com about被视
  • Raven 查询返回集合包含的 0 个结果

    我有一个基本架构 Post Labels Text Mine Text Incomplete 我正在查询 raven 询问所有带有 我的 和 不完整 标签的帖子 queryable Where candidate gt candidate
  • 从现有的 OutputStream 创建 Java-Zip-Archive

    如果我不想将生成的存档写入磁盘而是将其发送到其他地方 是否可以在 Java 中创建 Zip 存档 这个想法是 当您想通过 HTTP 例如 从数据库 Blob 或任何其他数据存储 将 Zip 存档发送给用户时 在磁盘上创建文件可能是一种浪费
  • Matplotlib:如何更改双条形图的图大小

    我使用以下代码在 matplotlib 中绘制了双条形图 x pd Series range 12 y self cust data Cluster ID value counts sort index z self cust data C
  • jsf动态改变托管bean

    如何动态更改托管 bean 的 value 属性 例如 我有 h inputText 并且根据输入的文本 托管 bean 必须是 studentBean login 或 lecturerBean login 简化形式