primefaces - 在 ajax 事件期间禁用 p:selectOneMenu 的问题
问题描述
我试图在处理 ajax 事件时禁用组合框,但它将 null 发送到 bean setter 而不是选定的值。一旦我删除代码 onstart="PF('testA').disable();",它就会发送正确的值。
有没有人对此有解决方案。谢谢。
我正在使用 Primefaces 6.2、JSF2.2、Java 7 和 Glassfish 4.1。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</h:head>
<h:body>
<h:form id="themeForm">
<p:selectOneMenu value="#{selectOneMenuViewA.theme}" widgetVar="testA">
<p:ajax process="@form" event="itemSelect" update=":themeForm:themeId" onstart="PF('testA').disable();" oncomplete="PF('testA').enable()"/>
<f:selectItems value="#{selectOneMenuViewA.themes}" var="theme" itemLabel="#{theme}" itemValue="#{theme}" />
</p:selectOneMenu>
<h:outputText id="themeId" value="#{selectOneMenuViewA.theme}"/>
</h:form>
</h:body>
public class SelectOneMenuViewA {
private String theme;
private List<String> themes;
@PostConstruct
public void init() {
themes = Arrays.asList("a", "b", "c");
}
public String getTheme() {
return theme;
}
public void setTheme(String theme) {
this.theme = theme;
}
public List<String> getThemes() {
return themes;
}
}
解决方案
推荐阅读
- node.js - req.body 在 express.js 应用程序中未定义(路径正确,使用正文解析器,正文具有键和值)但 req.body 未定义
- ffmpeg - FFmpeg api,如何将没有 pts 时间戳的原始 h264 复用到 mp4 或 m3u8
- algorithm - 有没有其他解释为什么“卢恩算法”很好?
- sql - 如何合并 SQL Server 中具有映射到通用描述的不同列标题的表?
- powerbi - 如何在 Power BI 中按 7 天时间段绘制图表
- git - 如何在 BitBucket 上使用 git 锁定文件?
- acumatica - 我无法让启动功能在相关实体控件上工作
- java - 如何检查 SQL 语句是查询还是更新?
- google-data-studio - 为什么数据工作室连接器会突然变得“未知”并停止工作?
- reactjs - 如何使用 webpack、babel、material ui 和 firebase 减少我的 react 应用程序包大小?