이 상황 후 변경 사항이 반영되지 않습니다. 선택한 항목이 메인 화면에 표시됩니다. 기본 화면에는 선택한 항목을 지우는 버튼이 있습니다. 관리되는 빈에 대한 ajax 작업을 트리거하여 (clearParentAssetButton을 통해) 바인딩 값을 지 웁니다.JSF 2 속성 아약스 액션
디버깅 할 때 값이 명확하고 기본 화면에 표시되지 않습니다. 그러나 내가 저장 버튼을 클릭하면, 내가 비어 있어야 속성이 실제로 비어 있지 않은 것을 알 수 있습니다. 그것은 여전히 가치를 지닙니다.
<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}" />
이 관리 빈 조각
@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의 버튼을 클릭하면, 그것은 아약스 조치를 트리거가 : 다음
는스 니펫 UI 코드 # {assetMasterCreatePage.doResetParentAsset} parentAsset의 값을 재설정합니다. 여기서 문제는 절약 할 때 이미 null이어야하는 parentAsset이 null이 아닐 때입니다.
저는 작업을 수행하기 위해 JSF 2를 사용하고 있습니다.
이것은 답변이 아닙니다. – kolossus
필드를 하나만 유지하면 해시 코드는 동일합니다. – user1954752