Java @EventListener&;IRequestCycle.getResponseBuilder.updateComponent未更新组件
我的申请有问题,我想做的是当有人将表单上的Java @EventListener&;IRequestCycle.getResponseBuilder.updateComponent未更新组件,java,html,tapestry,event-listener,Java,Html,Tapestry,Event Listener,我的申请有问题,我想做的是当有人将表单上的shopStatus字段更改为Pass时,我希望它将我的字段shoppapprovaldate更新为必填字段。我正在为此使用以下事件侦听器 @EventListener(targets="shopStatus", events="onchange") public void onLicenseStatusChange(IRequestCycle cycle) { cycle.getResponseBuilder().updateComponent
shopStatus
字段更改为Pass
时,我希望它将我的字段shoppapprovaldate
更新为必填字段。我正在为此使用以下事件侦听器
@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
什么都不会发生,但是如果我保存页面并重新加载页面,则shopprovaldate
设置为强制,因此html代码可以工作,这就像当shopStatus
更改时,@EventListener
没有更新shoppapprovaldate
!我已经调试了代码,它击中了听众,但什么都没有发生
有人对此有什么想法吗?这是因为您需要对调用@IF@Else而不是实际组件本身的东西调用更新 如果您在@If@Else之外添加了一个函数,并在事件侦听器中调用该函数,那么应该是这样的
看起来像是tapestry的旧版本,4.?tapestry-framework-4.1.6,这有什么关系?
<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");
}