gpt4 book ai didi

java - JSF 对话框立即消失

转载 作者:行者123 更新时间:2023-11-29 05:54:23 26 4
gpt4 key购买 nike

在我的 JSF 页面上,我在 dataTable 中显示了一个简单的数据库表。我希望能够编辑此表中的行。作为解决方案,当您单击第一列中的值时,我会弹出一个对话框。我使用 setPropertyActionListener 在我的支持 bean 中设置当前行/实体。这似乎有效。但是,弹出窗口会在几分之一秒后消失。我不明白这是为什么。有人有什么建议吗?

这是我的数据表的 JSF 代码:(如您所见,我正在使用 PrimeFaces)

<h:form id="dataForm">
<p:dataTable value="#{misterBean.values}" var="value">
<p:column>
<h:commandLink value="#{value.name}" onclick="updateDlg.show()">
<f:setPropertyActionListener
target="#{misterBean.value}"
value="#{value}" />
</h:commandLink>
</p:column>
<!-- more columns -->
</p:dataTable>
</h:form>

和对话框的 JSF 代码:

<p:dialog id="updateDialog" header="Update data" widgetVar="updateDlg">
<h:form id="updateForm">
<h:panelGrid columns="2" cellpadding="5">
<h:outputLabel for="name" value="Name:" />
<p:inputText id="name" value="#{misterBean.value.name}" />
<h:outputLabel for="flag" value="Flag:" />
<p:selectBooleanButton id="flag"
value="#{misterBean.value.flag}"
onLabel="On"
offLabel="Off" />
<f:facet name="footer">
<p:commandButton id="submitButton"
value="Submit"
actionListener="#{misterBean.update}"
oncomplete="updateDlg.hide()"
update=":dataForm" />
</f:facet>
</h:panelGrid>
</h:form>
</p:dialog>

支持 bean 如下所示:

@Controller
@ManagedBean( name = "misterBean" )
@ViewScoped
public final class MisterBean {

private final MyService myService;
private final List<Value> values;
private Value value;

@Autowired
public MisterBean( final MyService myService ) {
this.myService = myService;
this.values = this.myService.loadValues();
this.value = new Value();
}

public List<Value> getValues() {
return this.values;
}

public Value getValue() {
return this.value;
}

public void setValue( final Value value ) {
this.value = value ;
}

public void update( final ActionEvent e ) {
this.myService.save( this.value );
this.value = new Value();
}

}

最佳答案

会不会是弹出对话框后页面就在刷新?我建议尝试使用 primefaces commandLink 而不是 native jsf commandLink,因为 primefaces commandLink 有 ajax=true我相信默认设置。

更改<h:commandLink...<p:commandLink...

关于java - JSF 对话框立即消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12729926/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com