Binding not found for required parameter called zone in mixin
-------------------------------------------------------------
Key: TAP5-1415
URL: https://issues.apache.org/jira/browse/TAP5-1415
Project: Tapestry 5
Issue Type: Bug
Components: tapestry-core
Affects Versions: 5.2.4, 5.2.3, 5.2.2, 5.2.1, 5.2.0
Reporter: François Facon
in Jumpstart v 4.12.2 the page
http://jumpstart.doublenegative.com.au/jumpstart/examples/javascript/ajaxselect1
<div t:type="zone" t:id="searchZone" style="background-color: eee; padding:
15px">
<form t:type="form" t:id="searchCriteria" style="margin: 0">
<t:errors/>
<t:label for="carMake"/>:
<select t:type="select" t:id="carMake"
t:model="carMakes" t:blankLabel="Choose..."
t:mixins="zoneUpdater" t:clientEvent="change"
t:event="changeOfCarMake" t:zone="searchZone"></select>
<t:label for="carModel"/>:
<select t:type="select" t:id="carModel"
t:model="carModels" t:blankLabel="Choose..."
t:mixins="zoneUpdater" t:clientEvent="change"
t:event="changeOfCarModel" t:zone="searchZone"></select>
Keywords: <input t:type="TextField" t:id="keyWords"
t:mixins="zoneUpdater" t:clientEvent="keyup"
t:event="changeOfKeyWords" t:zone="searchZone"/> (optional)<br/>
<input type="submit" value="Save"/>
</form>
</div>
<br/>
Use a mixin that declare a parameter called zone.
/* * The zone to be updated by us. / @Parameter(defaultPrefix =
BindingConstants.LITERAL, required = true)
private String zone;
this page works fine in 5.1.0.5 but in 5.2.4 an exception occured
An unexpected application exception has occurred.
* org.apache.tapestry5.ioc.internal.OperationException
Parameter(s) 'ZoneUpdater.zone' are required for
org.apache.tapestry5.corelib.components.Select, but have not been bound.
If I change the parameter name to zoneName, the binding works fine.
When debugging
public void bindParameter(String parameterName, Binding binding)
{
if (bindings == null)bindings = CollectionFactory.newCaseInsensitiveMap();
bindings.put(parameterName, binding);
}
in see the value LiteralBinding[zone: searchZone] for parameterName zone
the exception occured when isBinding is looking for parameter zone in component
searchCriteria which is a form
According to Mr Lewis Ship
"This was a bit of unintended consequences ... the Mixin's zone
parameter was ignored and the Select components (new in 5.2) zone
parameter was bound instead. Using zoneupdater.zone="searchZone",
which is Tapestry's way of identifying, in the template, that its the
zone parameter of the ZoneUpdater mixin that is bound, should fix it."
Regards
François
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.