here is the template with the problematic actionlink highlighted
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" xmlns:p="tapestry:parameter" xmlns:tx="tapestry-library:tapx"> <div class="diary"> <t:zone t:id="diaryZone" id="diaryZone"> <t:if test="!authenticated"> <t:clientaccess vendorIdParm="${vendorId}"/> <p:else> <t:if t:test="denied"> <center>${message:text.diarydenied}</center> <p:else> <t:delegate to="block:booking"/> </p:else> </t:if> </p:else> </t:if> </t:zone> <t:block id="booking"> <center> <h1>${name}</h1> </center> <p>${message:text.diaryinstructions}</p> <t:zone t:id="dateZone" id="dateZone"> <span class="left">${message:label.appointmentdate}</span><span style="color: red;">(${timeZoneName})</span> <div class="daybar"> <a t:type="actionlink" t:id="bardayClickedLeft" t:zone="dateZone" t:parameters="parms" href="#" class="daybarnavl" title="${message:text.prevweek}"/> <t:loop t:source="bardays" t:value="startDate"> <a t:type="actionlink" t:id="bardayClicked" t:zone="dateZone" t:parameters="parms" t:context="startDate.time" href="#" class="${dateStyle}"> <span class="barDayName">${startDateDay}</span> <br/> <span class="barDayNum">${startDateNum}</span> <br/> <span class="barDayMon">${startDateMon}</span> </a> </t:loop> <a t:type="actionlink" t:id="bardayClickedRight" t:zone="dateZone" t:parameters="parms" href="#" class="daybarnavr" title="${message:text.nextweek}"/> </div> <div class="timelist"> <t:if t:test="startTimes"> <t:zone t:id="timeZone" id="timeZone"> <t:loop t:source="startTimes" t:value="startTime"> <a t:type="actionlink" t:id="timeClicked" t:zone="timeZone" t:parameters="parms" t:context="startTime.time" href="#" class="listtime"> <span class="startTime">${startTimeFmt} <t:if test="selectedTime"> ${entryDetails}</t:if> </span> </a> </t:loop> </t:zone> <p:else> <t:if t:test="!altDates"> ${message:text.pickadate} <p:else> ${message:text.anotherdate}: <br/> <t:loop t:source="altDates" t:value="startDate"> <a t:type="actionlink" t:id="altDateClicked" t:zone="dateZone" t:parameters="parms" t:context="startDate.time" href="#" class="bardate"> <span class="barDayName">${startDateDay}</span> <br/> <span class="barDayNum">${startDateNum}</span> <br/> <span class="barDayMon">${startDateMon}</span> </a> </t:loop> </p:else> </t:if> </p:else> </t:if> </div> </t:zone> <t:zone t:id="formZone" id="formZone"> <form t:type="form" t:id="bookingForm" t:zone="^" t:context="parms"> <t:if test="reqProposal"> <br/> ${message:text.proposalinstructions} <p> <t:label for="proposal" class="left">${message:label.proposal}</t:label> <input t:type="TextArea" t:id="proposal" maxlength="2000" t:validate="required,minlength=100" rows="5" cols="52" t:mixins="jquery/tooltip,jquery/zoneUpdater" t:zone="formZone" t:clientEvent="change" t:event="changeProposal" style="width:90%;"/> </p> </t:if> <t:if t:test="arranged"> ${message:text.callininstructions} <p> <t:label for="callInTime" class="left">${message:label.callintime}</t:label> <t:select t:id="callInTime" value="callInTime" model="callInTimes" t:blankOption="NEVER"/> </p> </t:if> <t:errors/> <center> <input t:type="submit" value="${message:button.submit}" t:mixins="jquery/button"/> </center> </form> </t:zone> </t:block> </div> </html> the debug log shows the parameters are passed from the browser, but do not get to the page class: components.Diary REQ: reservationIdParm=4 components.Diary REQ: t:ac=admin components.Diary REQ: t:zoneid=timeZone components.Diary REQ: venueIdParm=1 components.Diary REQ: workIdParm=2 components.Diary preload:{venueIdParm=null, workIdParm=null, reservationIdParm=null} public class Diary { @Parameter private Integer workIdParm; @Parameter private Integer venueIdParm; @Parameter private Integer reservationIdParm; @Property private HashMap parms; private void presetup() { bookingForm.clearErrors(); parms = new HashMap(); parms.put("workIdParm", workIdParm); parms.put("venueIdParm", venueIdParm); parms.put("reservationIdParm", reservationIdParm); for (String pname : request.getParameterNames()) { log.debug("REQ: " + pname + "=" + request.getParameter(pname)); } log.debug("preload:" + parms); } void onActionFromTimeClicked(long timeClicked) { presetup(); startTimex = new Date(timeClicked); startDatex = new Date((startTimex.getTime() / TimeConstants.MS_DAY) * TimeConstants.MS_DAY); log.debug("selected " + new Date(timeClicked) + " " + startDatex); loadTimes(15); loadCallInTimes(); ajaxResponseRenderer.addRender(timeZone).addRender(formZone); } The page class thows a NPE on subsequent use of the workIdParm. I'd really like the @Paremeter members to be added to all the client side links by default, seems like boilerplate code to me. ----- Original Message ----- From: Thiago H de Paula Figueiredo To: Tapestry users Sent: Thursday, December 05, 2013 1:36 PM Subject: Re: component paramter frustrations Without the code *and* template we cannot help you. We could only guess what's happening. -- Thiago H. de Paula Figueiredo Tapestry, Java and Hibernate consultant and developer http://machina.com.br Help me spend a whole month working on Tapestry bug fixes and improvements: http://igg.me/at/t5month --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org