2012-08-23 128 views
2

我在應用程序中遇到問題,我正在嘗試的是當有人將表單上的字段shopStatus更改爲Pass,我希望它更新我的字段shopApprovalDate爲必填項。我現在用的是下面的事件監聽器此@EventListener&IRequestCycle.getResponseBuilder.updateComponent未更新組件

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

} 

這是我使用這個

<td valign="center" align="left" class="rightTD" height="30" > 
     <span jwcid="@If" condition="ognl:company.shopStatus == @[email protected]" renderTag="literal:false"> 
      <input jwcid="[email protected]" 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="[email protected]" disabled="ognl:disabled || isShopApprovalDateDisabled()" 
      value="ognl:company.shopApprovalDate" displayName="message:company.shopApprovalDate" validators="validators:maxDateToday" /> 
     </span> 
     </td> 

的事情是,如果我改變shopStatusPass沒有任何反應的HTML,但如果我保存頁面並重新加載頁面,然後shopApprovalDate被設置爲強制性的,所以html代碼正在工作,它就像@EventListener未更新shopApprovalDateshopStatus被更改!我已經通過代碼調試,它是擊中聽衆,但沒有發生

有沒有人有任何想法呢?

+0

看起來像舊版的掛毯,4。 – pstanton

+0

tapestry-framework-4.1.6,爲什麼這很重要? – flexinIT

回答

3

這是因爲你需要如果添加了調用的東西,調用@IF @Else而不是實際的組件本身

更新的@If @Else外,並呼籲,在事件監聽器此應工作,然後像這樣

<div>

<div jwcid="[email protected]"> 
<td valign="center" align="left" class="rightTD" height="30" > 
    <span jwcid="@If" condition="ognl:company.shopStatus == @[email protected]" renderTag="literal:false"> 
     <input jwcid="[email protected]" 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="[email protected]" 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"); 
} 
+0

這個排序好吧,乾杯:) – flexinIT