[英]How to escape double quotes for Primefaces SelectOneMenu in Application level?
Using PrimeFaces, when the content of itemLabel
of a p:selectOneMenu
has the char double quote ("), the selectOneMenu
stop working (can't select the item). For example, in the code below is not possible to select: Item "2"使用PrimeFaces,当p:selectOneMenu
的itemLabel
内容有char 双引号(") 时, selectOneMenu
停止工作(不能select item)。例如,在下面的代码中是不可能select: Item " 2"
Is there a way to escape or replace the double quotes in every selectOneMenu
from the entire application?有没有办法从整个应用程序中转义或替换每个selectOneMenu
中的双引号?
Maybe using a tag decorator or a tag handler?也许使用标签装饰器或标签处理程序?
@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);
}
}
<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>
When I try to select 'Item "2"', the following error is shown on console log:当我尝试 select 'Item "2"' 时,控制台日志中显示以下错误:
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)
Verified as fixed in PrimeFaces 7.0.经验证已在 PrimeFaces 7.0 中修复。
However, it may also be fixed in 6.2.X depending on which fix was applied.但是,它也可能在 6.2.X 中得到修复,具体取决于应用了哪个修复程序。
6.2.9: https://github.com/primefaces/primefaces/issues/3982 6.2.9: https://github.com/primefaces/primefaces/issues/3982
7.0: https://github.com/primefaces/primefaces/issues/3466 7.0: https://github.com/primefaces/primefaces/issues/3466
It appears this isse was reintroduced in PrimeFaces 10.0.0 and fixed in version 10.0.9:看来这个问题在 PrimeFaces 10.0.0 中重新引入并在版本 10.0.9 中修复:
10.0: https://github.com/primefaces/primefaces/issues/7878 10.0: https://github.com/primefaces/primefaces/issues/7878
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.