2

アプリケーションに問題があります。私がやろうとしているのは、誰かがshopStatusフォームのフィールドをに変更するたびに、フィールドを必須Passに更新することです。shopApprovalDateこれには次のイベントリスナーを使用しています

@EventListener(targets="shopStatus", events="onchange")
public void onLicenseStatusChange(IRequestCycle cycle) {
    cycle.getResponseBuilder().updateComponent("shopStatus");
    cycle.getResponseBuilder().updateComponent("shopApprovalDateRequired");
    cycle.getResponseBuilder().updateComponent("shopApprovalDate");

}

これは私がこれに使用しているhtmlです

<td valign="center" align="left" class="rightTD" height="30" >
         <span jwcid="@If" condition="ognl:company.shopStatus == @valueobject.ShopStatus@Pass" renderTag="literal:false">
            <input jwcid="shopApprovalDateRequired@CustomDatePicker" disabled="ognl:disabled || isShopApprovalDateDisabled()"
            value="ognl:company.shopApprovalDate" displayName="message:company.shopApprovalDate" validators="validators:maxDateToday,required" />
         </span>
         <span jwcid="@Else" renderTag="literal:false">
            <input jwcid="shopApprovalDate@CustomDatePicker" disabled="ognl:disabled || isShopApprovalDateDisabled()"
            value="ognl:company.shopApprovalDate" displayName="message:company.shopApprovalDate" validators="validators:maxDateToday" />
         </span>
        </td>

何にも変更shopStatusしないとPass何も起こらないのですが、ページを保存してリロードすると、shopApprovalDateが必須に設定されてHTMLコードが機能するようになり、変更しても更新されないようになります@EventListener。コードをデバッグしましたが、リスナーにヒットしていますが、何も起きていませんshopApprovalDateshopStatus

誰かがこれについて何か考えを持っていますか?

4

1 に答える 1

3

これは、実際のコンポーネント自体ではなく、@IF@Elseを呼び出すものに対して更新を呼び出す必要があるためです。

@If @Elseの外部を追加し、それをイベントリスナーで呼び出すと、これは次のように機能するはずです。

The<div>

<div jwcid="licenceAuthRequiredDiv@Any">
<td valign="center" align="left" class="rightTD" height="30" >
     <span jwcid="@If" condition="ognl:company.shopStatus == @valueobject.ShopStatus@Pass" renderTag="literal:false">
        <input jwcid="shopApprovalDateRequired@CustomDatePicker" disabled="ognl:disabled || isShopApprovalDateDisabled()"
        value="ognl:company.shopApprovalDate" displayName="message:company.shopApprovalDate" validators="validators:maxDateToday,required" />
     </span>
     <span jwcid="@Else" renderTag="literal:false">
        <input jwcid="shopApprovalDate@CustomDatePicker" disabled="ognl:disabled || isShopApprovalDateDisabled()"
        value="ognl:company.shopApprovalDate" displayName="message:company.shopApprovalDate" validators="validators:maxDateToday" />
     </span>
    </td>
</div> 

イベントリスナー

@EventListener(targets="licensingStatus", events="onchange")
public void onLicenseStatusChange(IRequestCycle cycle){
    cycle.getResponseBuilder().updateComponent("licenceAuthRequiredDiv");
}
于 2012-08-27T11:39:40.990 に答える