使用PrimeFaces,当itemLabel
的{{1}}的内容具有双引号(“)时,p:selectOneMenu
停止工作(无法选择该项目)。
例如,在下面的代码中无法选择:项目“ 2”
是否有一种方法可以从整个应用程序中转义或替换每个selectOneMenu
中的双引号?
也许使用标签装饰器或标签处理程序?
selectOneMenu
@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);
}
}
当我尝试选择“项目“ 2””时,控制台日志上显示以下错误:
<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>
答案 0 :(得分:1)
已在PrimeFaces 7.0中进行了验证。
但是,根据所应用的修复程序,它也可能已在6.2.X中修复。