首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在应用程序级别转义Primefaces SelectOneMenu的双引号?

如何在应用程序级别转义Primefaces SelectOneMenu的双引号?
EN

Stack Overflow用户
提问于 2019-05-30 04:13:07
回答 1查看 223关注 0票数 1

使用PrimeFaces,当p:selectOneMenuitemLabel内容包含字符双引号(")时,selectOneMenu停止工作(无法选择该项)。例如,在以下代码中无法选择:项"2“

是否有一种方法可以转义或替换整个应用程序中每个selectOneMenu中的双引号?

也许使用标记装饰器或标记处理程序?

代码语言:javascript
复制
@Named(value = "bb")
@ViewScoped
@Getter @Setter
public class BB implements Serializable {

    List<String> items;
    String selectedItem;

    @PostConstruct
    public void init() {
        items = new ArrayList<>();
        items.add("Item 1");
        items.add("Item \"2\""); // <= note the double quotes here.
        items.add("Item 3");
    }

    public void logSelected() {
        System.out.println(selectedItem);
    }
}
代码语言:javascript
复制
    <h:form>
        <p:selectOneMenu value="#{bb.selectedItem}">
            <f:selectItems value="#{bb.items}"/>
        </p:selectOneMenu>

        <p:commandButton action="#{bb.logSelected}"
                         process="@form"
                         update="@form"
                         value="GO"/>
    </h:form>

当我试图点击'Item“2‘时,控制台日志上显示以下错误:

代码语言:javascript
复制
Uncaught Error: Syntax error, unrecognized expression: [data-label="Item "2""]
    at Function.ga.error (eNptjUsOgzAMRE9E2XMbEwwkcmxjJ6qQenh-i6qF1UhvnmbUYsYRAnqXloq2tle8kn_02wUxvKGswsjF_4qfnUapTpFPp1KJGRqCVWrpkrcMLB5MiNAeBX9HPX9n8HmAAgecSHqgnW7lbUr_.js.xhtml?ln=omnifaces.combined&v=1558274343370:2)
    at ga.tokenize (eNptjUsOgzAMRE9E2XMbEwwkcmxjJ6qQenh-i6qF1UhvnmbUYsYRAnqXloq2tle8kn_02wUxvKGswsjF_4qfnUapTpFPp1KJGRqCVWrpkrcMLB5MiNAeBX9HPX9n8HmAAgecSHqgnW7lbUr_.js.xhtml?ln=omnifaces.combined&v=1558274343370:2)
    at ga.compile (eNptjUsOgzAMRE9E2XMbEwwkcmxjJ6qQenh-i6qF1UhvnmbUYsYRAnqXloq2tle8kn_02wUxvKGswsjF_4qfnUapTpFPp1KJGRqCVWrpkrcMLB5MiNAeBX9HPX9n8HmAAgecSHqgnW7lbUr_.js.xhtml?ln=omnifaces.combined&v=1558274343370:2)
    at ga.select (eNptjUsOgzAMRE9E2XMbEwwkcmxjJ6qQenh-i6qF1UhvnmbUYsYRAnqXloq2tle8kn_02wUxvKGswsjF_4qfnUapTpFPp1KJGRqCVWrpkrcMLB5MiNAeBX9HPX9n8HmAAgecSHqgnW7lbUr_.js.xhtml?ln=omnifaces.combined&v=1558274343370:2)
    at ga (eNptjUsOgzAMRE9E2XMbEwwkcmxjJ6qQenh-i6qF1UhvnmbUYsYRAnqXloq2tle8kn_02wUxvKGswsjF_4qfnUapTpFPp1KJGRqCVWrpkrcMLB5MiNAeBX9HPX9n8HmAAgecSHqgnW7lbUr_.js.xhtml?ln=omnifaces.combined&v=1558274343370:2)
    at Function.ga.matches (eNptjUsOgzAMRE9E2XMbEwwkcmxjJ6qQenh-i6qF1UhvnmbUYsYRAnqXloq2tle8kn_02wUxvKGswsjF_4qfnUapTpFPp1KJGRqCVWrpkrcMLB5MiNAeBX9HPX9n8HmAAgecSHqgnW7lbUr_.js.xhtml?ln=omnifaces.combined&v=1558274343370:2)
    at Function.r.filter (eNptjUsOgzAMRE9E2XMbEwwkcmxjJ6qQenh-i6qF1UhvnmbUYsYRAnqXloq2tle8kn_02wUxvKGswsjF_4qfnUapTpFPp1KJGRqCVWrpkrcMLB5MiNAeBX9HPX9n8HmAAgecSHqgnW7lbUr_.js.xhtml?ln=omnifaces.combined&v=1558274343370:2)
    at E (eNptjUsOgzAMRE9E2XMbEwwkcmxjJ6qQenh-i6qF1UhvnmbUYsYRAnqXloq2tle8kn_02wUxvKGswsjF_4qfnUapTpFPp1KJGRqCVWrpkrcMLB5MiNAeBX9HPX9n8HmAAgecSHqgnW7lbUr_.js.xhtml?ln=omnifaces.combined&v=1558274343370:2)
    at r.fn.init.filter (eNptjUsOgzAMRE9E2XMbEwwkcmxjJ6qQenh-i6qF1UhvnmbUYsYRAnqXloq2tle8kn_02wUxvKGswsjF_4qfnUapTpFPp1KJGRqCVWrpkrcMLB5MiNAeBX9HPX9n8HmAAgecSHqgnW7lbUr_.js.xhtml?ln=omnifaces.combined&v=1558274343370:2)
    at c.setLabel (eNptjUsOgzAMRE9E2XMbEwwkcmxjJ6qQenh-i6qF1UhvnmbUYsYRAnqXloq2tle8kn_02wUxvKGswsjF_4qfnUapTpFPp1KJGRqCVWrpkrcMLB5MiNAeBX9HPX9n8HmAAgecSHqgnW7lbUr_.js.xhtml?ln=omnifaces.combined&v=1558274343370:38)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-31 19:02:11

已在PrimeFaces 7.0中验证为已修复。

但是,它也可能在6.2.X中得到修复,具体取决于所应用的修复。

6.2.9:https://github.com/primefaces/primefaces/issues/3982

7.0:https://github.com/primefaces/primefaces/issues/3466

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56367851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档