Hey all,


I’ve recently been using T 5.3 for an internal site, and have run into a
bit of a snag when using a select component along with a zone and blocks to
conditionally render parts of a form. I’ll include my code below, but first
I’d like to explain what I’m attempting to do, as well as what is going
wrong. Essentially, I populate a t:select component first from a list of
pre-defined values, then using the onValueChangedFrom() method, I get the
value of the currently selected item from t:select in order to
conditionally render the next part of my form. Each item in the select menu
corresponds to a block, which is then displayed within a zone that
corresponds to the t:select component. This all works fine, and is not the
issue that I’m running into. The issue I do have however, is when the value
for select corresponds to a block with a TextArea inside it, html comments
appear within that area. Here is a snippet of code, with (un)important bits
and pieces redacted. The block labeled createBlock is the one with a
TextArea component within it.



Test.java



> @Property
>                 private UploadedFile upload;
>
>                 @Property
>                 private String createCSV;
>
>                 @Property
>                 private List<String> action;
>
>                 @Component
>                 private Form uploadForm;
>
>                 @Inject
>                 private Block editBlock, uploadBlock, createBlock,
> emptyBlock;
>
>                 @InjectComponent
>                 private Zone uploadZone;
>
>                 public Object onActivate(){
>                                 if(!userSession.isAuthenticated())
>                                                 return LoginPage.class;
>                                 action = Arrays.asList("Choose an option",
> "Upload", "Create", "Edit");
>                                 return null;
>                 }
>
> public Object onValueChangedFromAction(String s){
>                                                 if(s.equals("Upload")){
>                                                                 return
> uploadBlock;
>                                                 }else
> if(s.equals("Create")){
>                                                                 return
> createBlock;
>                                                 }else if(s.equals("Edit")){
>                                                                 return
> editBlock;
>                                                 }else
>                                                                 return
> emptyBlock;
>                 }



Test.tml



> <html
>                 t:type="layout"
>                 t:pageName="Test"
>                 t:pageTitle="Test"
>                 xmlns:t="
> http://tapestry.apache.org/schema/tapestry_5_3.xsd";>
>
>                 <t:block t:id="emptyBlock">
>                                 <br/>
>                 </t:block>
>
>                 <t:block t:id="createBlock">
>                                                 <table>
>                                                                 <tr>
>
> <td class="name"><b>Write your own .csv here:</b> </td>
>                                                                 </tr>
>                                                                 <tr>
>
> <td><t:TextArea t:id="createCSV" t:value="createCSV" rows="5"
> ></t:TextArea></td>
>                                                                 </tr>
>                                                 </table>
>                 </t:block>
>
>                 <t:block t:id="uploadBlock">
>                                 <t:label for="upload">Upload
> file:</t:label>
>                                 <input t:type="upload" accept="text/csv"
> t:id="upload" t:value="upload" validate="required"/>
>                 </t:block>
>
>
>
>                 <t:form t:id="uploadForm">
>                                 <t:errors/>
>                                                 <t:label
> for="action">Create, edit, or upload .csv?</t:label>
>                                                 <t:select t:id="action"
> model="action" t:zone="uploadZone" t:value="actionSelection"
> t:blankOption="NEVER" validate="required"/>
>                                                                 <t:zone
> t:id="uploadZone" id="uploadZone">
>
> <t:if test="action">
>
> </t:if>
>                                                                 </t:zone>
>                                                 <br/>
>                                 <input type="submit" class="submitbutton"
> value="${message:Test.button.submit}" style="vertical-align:middle;"/>
>                                 &nbsp;
>                                 <t:actionlink t:id="cancel"
> class="cancelbutton">${message:Test.button.cancel}</t:actionlink>
>                 </t:form>
> </html>



Below is an example of the comments that populate the TextArea upon
switching from another block, line 17 refers to this line:


<td><t:TextArea t:id="createCSV" t:value="createCSV"
> rows="5"></t:TextArea></td>




> <!--BEGIN bulkimport/Test:createcsv$renderdisabled
> (context:bulkimport/Test.tml, line 17)--><!--BEGIN
> bulkimport/Test:createcsv$discardbody (context:bulkimport/Test.tml, line
> 17)--><!--END bulkimport/Test:createcsv$discardbody--><!--END
> bulkimport/Test:createcsv$renderdisabled-->
>

Thanks in advance for all the help!



Regards,

Matthew A Resch

Reply via email to