2013-01-10 3 views
1

이 상황 후 변경 사항이 반영되지 않습니다. 선택한 항목이 메인 화면에 표시됩니다. 기본 화면에는 선택한 항목을 지우는 버튼이 있습니다. 관리되는 빈에 대한 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를 사용하고 있습니다.

답변

-1

이상한, parentAsset의 값을 보유 다른 분야가있다, 나는 페이지의이 말은 당신이 (가) 저장 버튼을 클릭하면 <h:inputText value="parentAsset.shortName"/>, 같은 일부 필드가 새로운 parentAsset는 당신은 또한 수 초기화되어 저장되며, 그것을 디버그하고 parentAsset의 해시 코드가 동일한 것인지 확인하십시오.

+0

이것은 답변이 아닙니다. – kolossus

+0

필드를 하나만 유지하면 해시 코드는 동일합니다. – user1954752