gpt4 book ai didi

java - JSF 2 属性不反射(reflect) ajax 操作后的更改

转载 作者:行者123 更新时间:2023-12-01 06:19:17 24 4
gpt4 key购买 nike

情况是这样的:

我有一个弹出框来选择列出的项目之一(单击 showParentAssetSearchButton)。选择后,所选项目的值将显示在主屏幕中。在主屏幕上,会有一个按钮来清除所选的项目。它将触发对托管 bean 的 ajax 操作以清除绑定(bind)值(通过单击clearParentAssetButton)。

当我调试时,该值是清晰的,不会显示在主屏幕上。但是,当我单击“保存”按钮时,我注意到应该为空的属性实际上并不为空。它仍然保持值(value)。

以下是 UI 代码片段:

<h:panelGroup id="myregion">
<p:inputText id="parentAsset"
ondblclick="parentAssetDlg.show()"
value="#{assetMasterCreatePage.parentAsset.shortName}"
rendered="#{not empty assetMasterCreatePage.parentAsset}"/>
</h:panelGroup>
<p:commandButton icon="ui-icon-search"
id="showParentAssetSearchButton"
type="button"
title="#{msg.label_asset_search_parent_asset}"
onclick="parentAssetDlg.show()" />
<p:commandButton icon="ui-icon-trash"
id="clearParentAssetButton"
title="#{msg.label_asset_clear_parent_asset}"
actionListener="#{assetMasterCreatePage.doResetParentAsset}"
immediate="true"
process="@form"
update="clearParentAssetButton, myregion"
disabled="#{empty assetMasterCreatePage.parentAsset}" />
........
<p:commandButton value="#{msg.button_save}" icon="ui-icon-disk"
action="#{assetMasterCreatePage.doSaveAsset}" />

这是托管 Bean 代码段

@ManagedBean(name="assetMasterCreatePage")
@ViewScoped
public class AssetMasterCreatePage extends DefaultAssetMasterPage {
private AssetMaster assetMaster;
private AssetMaster parentAsset;

..........
.........
public void doResetParentAsset(){
parentAsset = null;
}
public String doSaveAssetMaster(){
assetMaster.setParentAsset(parentAsset);
assetMasterService.save(assetMaster);
MessageUtils.saveSuccessMessage();
return "save";
}

}

可以看到,当clearParentAssetButton的按钮被点击时,会触发ajax操作#{assetMasterCreatePage.doResetParentAsset}来重置parentAsset的值。这里的问题是保存时,本来应该为 null 的parentAsset 不为 null。

我正在使用 JSF 2 来执行任务。

最佳答案

奇怪,是否还有其他字段保存值 parentAsset ,我的意思是在页面中,有一些字段,例如 <h:inputText value="parentAsset.shortName"/> ,当您单击“保存”按钮时,会出现一个新的 parentAsset初始化并保存,也可以调试,看到parentAsset的哈希码来确定是否相同。

关于java - JSF 2 属性不反射(reflect) ajax 操作后的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14253183/

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