Primefaces selectOneMenu 转换器已调用但不工作

2024-01-10

我看过其他问题this https://stackoverflow.com/questions/17774367/selectonemenu-converter and this https://stackoverflow.com/questions/16164237/primefaces-selectonemenu-with-converter-not-working-with-my-backingbean, etc, 问题是我的转换被调用但 selectOneMenu 的值没有改变。我的实体类已生成,并且具有 equals 和 hashCode,我不想更改其中的任何内容 - 如果重新生成它,则所有更改都将丢失(解决方法是更改​​实体类的 toString)。

HTML 代码片段:

<p:selectOneMenu id="defid" 
                 value="#{abcController.selected.defid}"
                 converter="defConverter">

转换器:

@FacesConverter("defConverter")
public class DefConverter implements Converter
{
    private static final Logger LOG = Logger.getLogger(DefConverter.class.getName());
    @EJB
    private DefFacade defFacade;

    @Override
    public Object getAsObject(FacesContext fc, UIComponent uic, String string)
    {
        LOG.info("getAsObject: " + string);
        try
        {
            return defFacade.findWithNFieldsWithValue("name", string, "=").get(0);
        }
        catch (Exception ex)
        {
            LOG.log(Level.SEVERE, "Error while fetching Def for " + string, ex);
        }
        return null;
    }

    @Override
    public String getAsString(FacesContext fc, UIComponent uic, Object obj)
    {
        LOG.info("getAsString obj class: " + obj.getClass().getName());
        if(obj instanceof Def)
        {
            Def def = (Def)obj;
            LOG.info("getAsString def name: " + def.getName());
            return def.getName();
        }
        else
        {
            StringBuilder sbError = new StringBuilder("The object of class ");
            sbError.append(obj.getClass().getName()).append(" is not of Def");
            throw new ClassCastException(sbError.toString());
        }
    }
}

实体类被剪断(这是生成的):

...
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "defid")
private Long defid;
...

@Override
public int hashCode()
{
    int hash = 0;
    hash += (defid != null ? defid.hashCode() : 0);
    return hash;
}

@Override
public boolean equals(Object object)
{
    // TODO: Warning - this method won't work in the case the id fields are not set
    if (!(object instanceof Def))
    {
        return false;
    }
    Def other = (Def) object;
    if ((this.defid == null && other.defid != null) || (this.defid != null && !this.defid.equals(other.defid)))
    {
        return false;
    }
    return true;
}

当页面加载时,我可以看到日志语句如下:

getAsString obj class: com.xyz.Def
getAsString def name: Name 1
getAsString obj class: com.xyz.Def
getAsString def name: Name 2
getAsString obj class: com.xyz.Def
getAsString def name: Name 3

因此,转换器被调用并返回正确的值,但在页面上它仍然是com.xyz.Def[defid=1](下拉并正常)


转换器似乎可以工作,但您没有发布整个内容<p:selectOneMenu>代码,特别是<f:selectItems>。它应该看起来像这样

<p:selectOneMenu id="defid" 
                 value="#{abcController.selected.defid}"
                 converter="defConverter">
    <f:selectItems value="#{abcController.defs}" var="def"
                       itemLabel="#{def.name}" itemValue="#{def.defId}" />
</p:selectOneMenu>

itemLabel负责打印显示值。

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

Primefaces selectOneMenu 转换器已调用但不工作 的相关文章

  • 具有更高可见性的重写方法是良好的实践吗?

    回答这个问题 如何使用 GUI 使用 PaintComponent 初始化 GUI 然后添加基于鼠标的 GUI https stackoverflow com questions 21336141 how to gui using pain
  • 如何在spring mvc中从控制器名称+操作名称获取映射的URL?

    是否有现有的解决方案可以从 Spring MVC3 中的 控制器名称 操作名称 获取映射的 URL 例如 asp net mvc 或 Rails 中的 UrlHelper 我觉得非常有用 thx 也许 你想要这样的东西 in your Co
  • 无法使用maven编译java项目

    我正在尝试在 java 16 0 1 上使用 maven 构建 IntelliJ 项目 但它无法编译我的项目 尽管 IntelliJ 能够成功完成 在此之前 我使用maven编译了一个java 15项目 但我决定将所有内容更新到16 0 1
  • 如何从秘密字符串中制作 HMAC_SHA256 密钥以在 jose4j 中与 JWT 一起使用?

    我想生成 JWT 并使用 HMAC SHA256 对其进行签名 对于该任务我必须使用jose4j https bitbucket org b c jose4j wiki Home 我尝试根据秘密生成密钥 SecretKeySpec key
  • Android 自定义视图不能以正确的方式处理透明度/alpha

    我正在绘制自定义视图 在此视图中 我使用两个不同的绘画和路径对象在画布上绘画 我基本上是在绘制两个重叠的形状 添加 Alpha 后 视图中重叠的部分比图像的其余部分更暗 这是不希望的 但我不知道如何解决它 这是我的代码片段 用于展示我如何在
  • 无法在 Spring Boot 测试中模拟 persistenceContext

    我正在使用带有 Mockito 框架的 spring boot 测试来测试我的应用程序 存储库类 EntityManager 之一作为参考 我的班级如下所示 Repository Transactional Slf4j public cla
  • Firestore - RecycleView - 图像持有者

    我不知道如何编写图像的支架 我已经设置了 2 个文本 但我不知道图像的支架应该是什么样子 你能帮我告诉我图像的文字应该是什么样子才能正确显示吗 holder artistImage setImageResource model getArt
  • 如何让spring为JdbcMetadataStore创建相应的schema?

    我想使用此处描述的 jdbc 元数据存储 https docs spring io spring integration docs 5 2 0 BUILD SNAPSHOT reference html jdbc html jdbc met
  • 具有共享依赖项的多模块项目的 Gradle 配置

    使用 gradle 制作第一个项目 所以我研究了 spring gradle hibernate 项目如何组织 gradle 文件 并开始制作自己的项目 但是 找不到错误 为什么我的配置不起作用 子项目无法解决依赖关系 所以项目树 Root
  • Java 服务器-客户端 readLine() 方法

    我有一个客户端类和一个服务器类 如果客户端向服务器发送消息 服务器会将响应发送回客户端 然后客户端将打印它收到的所有消息 例如 如果客户端向服务器发送 A 则服务器将向客户端发送响应 1111 所以我在客户端类中使用 readLine 从服
  • Git 无法识别重命名和修改的包文件

    我有一个名为的java文件package old myfile java 我已经通过 git 提交了这个文件 然后我将我的包重命名为new所以我的文件在package new myfile java 我现在想将此文件重命名 和内容更改 提交
  • Java 数组的最大维数

    出于好奇 在 Java 中数组可以有多少维 爪哇language不限制维数 但是JavaVM规范将维度数限制为 255 例如 以下代码将无法编译 class Main public static void main String args
  • 如何将 Jfreechart(饼图)添加到 netbeans 的面板中

    我正在使用 netbeans gui 编辑器 并且正在尝试添加一个本身位于内部框架中的 Jfreechart 并且这个内部框架我想将其添加到面板中 正如您在此图中看到的那样 抱歉 我无法直接发布图像 因为我新手 http www flick
  • 获取给定类文件的目录路径

    我遇到的代码尝试从类本身的 class 文件所在的同一目录中读取一些配置文件 File configFiles new File this getClass getResource getPath listFiles new Filenam
  • Spring Security OAuth2简单配置

    我有一个简单的项目 需要以下简单的配置 我有一个 密码 grant type 这意味着我可以提交用户名 密码 用户在登录表单中输入 并在成功时获得 access token 有了该 access token 我就可以请求 API 并获取用户
  • Dispatcher-servlet 无法映射到 websocket 请求

    我正在开发一个以Spring为主要框架的Java web应用程序 特别使用Spring core Spring mvc Spring security Spring data Spring websocket 像这样在 Spring 上下文
  • 尝试使用等于“是”或“否”的字符串变量重新启动 do-while 循环

    计算行程距离的非常简单的程序 一周前刚刚开始 我有这个循环用于解决真或假问题 但我希望它适用于简单的 是 或 否 我为此分配的字符串是答案 public class Main public static void main String a
  • 为什么java中的for-each循环中需要声明变量

    for 每个循环的通常形式是这样的 for Foo bar bars bar doThings 但如果我想保留 bar 直到循环结束 我可以not使用 foreach 循环 Foo bar null Syntax error on toke
  • 如何在 JSF 中实现登录过滤器?

    即使用户知道某些页面的网址 我也想阻止某些页面的访问 例如 localhost 8080 user home xhtml 需要先登录 如果没有登录则重定向到 index xhtml 在 JSF 中如何做到这一点 我在谷歌上看到需要一个过滤器
  • 在哪里存储 Java 的 .properties 文件?

    The Java教程 http download oracle com javase tutorial essential environment properties htmlon using Properties 讨论如何使用 Prop

随机推荐

  • Firefox 中的字段集内容溢出

    我遇到了有关 fieldset 的 css 问题 想知道您是否可以提供帮助 我有一个宽度小于其内容 div 宽度的字段集 我希望字段集显示水平滚动条 因为内容太宽 但它仅适用于 IE 不适用于 Firefox 提前致谢 Eric 这是htm
  • 将 Requirejs 和基于 Backbone 的应用程序迁移到 WebPack

    我有一个使用 Backbone js 和 Marionette 与 Requirejs 开发的大型应用程序 我们使用 Grunt 进行构建 我需要将 Requirejs 迁移到 Webpack 因为我们经常看到模块加载超时 我觉得 Webp
  • 类似于 LINQ to Entities 中的运算符或使用通配符

    我正在使用 LINQ 2 实体 以下是问题所在 string str test doc Contains str converts this into LIKE test doc 预期转化 LIKE test doc 如果是 LINQ 2
  • Cordova 项目中检测到 Android Studio 项目

    我在命令行中创建了一个cordova项目 我添加了android平台 当运行 科尔多瓦准备安卓 or 科尔多瓦构建安卓 我收到以下消息 检测到 Android Studio 项目 并且构建尚未开始 请问问题是什么 请帮助 科尔多瓦版本 8
  • TypeDescriptor.GetConverter() 不返回我的转换器

    我有一个简单的类型 带有在运行时编译和加载的自定义类型转换器 但 TypeDescriptor GetConverter 找不到正确的转换器 这是一个独立的例子 using System using System ComponentMode
  • 如何使用Python 3.4和SIP 4.19.1安装PyQt5?

    我需要使用安装在 XP 机器上的 Python3 4 现在我正在尝试使用Python34在Win10中安装PyQt5 然而 当我跑步时 pip3 install PyQt5 I get 找不到任何满足 SIP gt 4 19 1 要求的下载
  • 为什么 std::wofstream 不将所有 wstring 打印到文件中?

    我有一个std wstring其大小为 139 580 199 个字符 为了调试 我使用以下代码将其打印到文件中 std wofstream f L C some file txt f lt lt buffer f close 之后注意到字
  • 当声明对 Int 数组的引用时,为什么它必须是对 const 指针的引用?

    注意 我正在使用 g 编译器 我听说它非常好并且应该非常接近标准 假设您声明了一个整数数组 int a 3 4 5 6 现在假设您确实想声明对该数组的引用 不管为什么 除了 Bjarne 说该语言支持它 案例 1 如果你尝试 int ra
  • 如何学习Linux无线驱动(mac80211)的结构?

    Linux无线驱动mac80211中有这么多的结构 像struct net device struct ieee80211 hw struct ieee80211 vif and struct ieee80211 local等等 如此多的结
  • ruby on Rails 是否有像 ASP.NET MVC 一样的客户端验证 [重复]

    这个问题在这里已经有答案了 在 ASP NET MVC 中 您可以使用数据注释模型设置客户端验证 这类似于 ruby on Rails 中的验证 然而 创建了一些不显眼的 JavaScript 钩子 可以自动连接表单上的客户端验证 Ruby
  • 如何使用 window.caches 保存窗口对象中的页面?

    大多数保存 app shell 的示例都显示了服务工作线程的过程 但是我注意到您还可以从窗口访问缓存对象 所以我的问题是 我可以从页面本身保存页面以供离线使用吗 如果可以 如果可能的话 服务人员的意义何在 这里存在一个先有鸡还是先有蛋的问题
  • 使用 git 进行 VS2010 项目:无法添加文件 *.opensdf

    我正在使用 git 跟踪 VS2010 中的 C 项目 我正在使用 stackoverflow 上找到的忽略模式 它通常不排除 opensdf 文件 不幸的是 当尝试提交文件时 我收到以下错误 error open foo opensdf
  • 赶上现代编程技术的一种方法

    我已经从事非专业编程大约 23 年了 发现我有点陷入困境 我找到了一个我喜欢的工具 并且年复一年地保持这种状态 不幸的是 这意味着我的编程落后于时代 我本身并不直接计划进行专业编程 但是 能够开发客户端 最近希望迁移到云 应用程序以供我的客
  • 如何从子域中删除主域 cookie

    是否可以从子域中删除主域 cookie 我正在使用单点登录 注销时我想删除主域 cookie 据我所知 你不能这样做 但是您不能将注销调用指向主域吗 想必您已经在登录调用中执行此操作 以便首先获取主域 cookie
  • 带有表行的 Javascript Onclick

    我的 JScript 代码有问题 我试图循环遍历表中的所有行并添加一个onclick事件 我可以得到onclick要添加的事件 但有几个问题 第一个问题是所有行最终都设置了错误的参数onclick event 第二个问题是它只能在 IE 中
  • 点与流程图上的 x 轴不对齐

    我有浮点数据 其中 x 轴上的点与线条不对齐 specifically take a look at this photo 这是我正在使用的原始数据 0 1327305600000 1989 1 1327392000000 3222 333
  • 我的文本框以编程方式添加在页面重新加载后丢失值后面的代码中。有什么办法可以解决这个问题吗?

    就像这个主题一样 我在通过按钮上的事件创建文本框时遇到问题 然后在重新加载后丢失了文本框中的值 我的代码 protected void Page Load object sender EventArgs e if IsPostBack Se
  • Android 片段:空构造函数真的需要吗?

    我有一个带有寻呼机和 FragmentStatePagerAdapter 的活动 我需要跨多个页面滑动 众所周知 这个适配器一次创建 3 个片段实例 一个是要显示的 一个是上一个 一个是下一个 我的活动使用只有一个构造函数的片段运行得非常好
  • 华为在手机锁定时关闭后台应用程序

    这是我第一次在这个论坛上提问 p 我制作了一个Android应用程序 它必须在后台运行 即当手机处于待机状态时才能恢复用户的位置 我使用服务和唤醒锁 该应用程序适用于SAMSUNG但我注意到HUAWEI如果应用程序不在受保护的应用程序列表中
  • Primefaces selectOneMenu 转换器已调用但不工作

    我看过其他问题this https stackoverflow com questions 17774367 selectonemenu converter and this https stackoverflow com question