【发布时间】:2018-05-01 14:27:43
【问题描述】:
对于这种特殊情况,我无法理解 JSF 生命周期。
我正在尝试使用 Primefaces 6.0 开发一个简单的模态 CRUD,但我遇到了添加/编辑模态的行为问题。
我想要完成的是:
添加
- 点击添加按钮
- 添加/编辑对话框打开
- InputText "field1" is disabled=false
编辑
- 点击编辑按钮
- 添加/编辑对话框打开
- InputText "field1" is disabled=true
为此,我将“field1”disabled 属性链接到我的 bean 上的 editMode 变量。
当我单击添加按钮时,链接操作 initAddRubro 被触发并设置 editMode = false(假设默认情况下为 true)。
问题是,当我在没有立即 = true 的情况下单击“添加”按钮时,会触发“添加/编辑”模式窗口的验证(Field1 is required=true)。
如果我在 Add Button 上使用 immediate=true,则 disabled 属性不会被刷新。
脸豆
@Component
@Scope("session")
public class RubrosFacesBean implements Serializable{
private boolean editMode = true;
public String initAddRubro(){
editMode = false;
return null;
}
}
页面
<p:commandButton value="Add" icon="ui-icon-plusthick"
oncomplete="PF('addPanelDialog').show();" style="float: right"
immediate="true" ajax="true" action="#{rubrosFacesBean.initAddRubro}"/>
<p:dialog header="Rubro" widgetVar="addPanelDialog" height="200" style="margin-left: auto;" modal="true" id="addPanelDialog" >
<p:messages autoUpdate="true" />
<p:panelGrid columns="2" id="addPanel">
<h:outputLabel for="field1" value="Field 1: " />
<p:inputText id="field1" value="#{rubrosFacesBean.field1}" label="Field1" required="true" disabled="#{rubrosFacesBean.editMode}"/>
</p:panelGrid>
</p:dialog>
感谢任何帮助。 提前致谢。
胡安-
【问题讨论】:
-
嗨,1000 个问题的链接对您没有帮助吗?请阅读How to Ask,特别是minimal reproducible example 部分。代码值一千字……
-
@Kukeltje 感谢您的回复,我添加了最少的代码来重现错误。如果您需要一些特别的东西来理解这个问题,请询问。问候。
标签: jsf primefaces jsf-2.2