hello Martin and thanks for you reply

the code works if I put in the 'name' property. However, if I put
there 'pname' , or I miss spell by mistake, I get no error (or maybe a
warning) saying that the property does not exist, and I should really
check that code.

I don't think this is related to the way the list is populated, as it
refers to a non-existent property on the Person bean. And mapping on a
non-existent property should be at least flagged in the logs.

The question is, is there any way I can enable that check, even if in
dev mode, as suggested by Carl, so I can make sure that things like
these don't just fly by.

thanks,
alex

On Thu, Nov 12, 2009 at 1:48 PM, Martin Gainty <mgai...@hotmail.com> wrote:
>
> How are the person objects being populated?
>
> here is the sample configuration from showcase:
>
>        <action name="enterPersonsInfo" method="input"
>                class="org.apache.struts2.showcase.conversion.PersonAction">
>            <result>enterPersonInfo.jsp</result>
>        </action>
>        <action name="submitPersonInfo" method="submit"
>                class="org.apache.struts2.showcase.conversion.PersonAction">
>            <result>showPersonInfo.jsp</result>
>            <result name="input">enterPersonInfo.jsp</result>
>        </action>
>        <action name="showPersonJspCode">
>            <result type="plainText">/conversion/enterPersonInfo.jsp</result>
>        </action>
>        <action name="showPersonActionJavaCode">
>            <result type="plainText">/conversion/PersonAction.java.txt</result>
>        </action>
>        <action name="showPersonJavaCode">
>            <result type="plainText">/conversion/Person.java.txt</result>
>        </action>
>
> here is enterPersonInfo.jsp which is used for all results to/fro 
> enterPersonsInfo action input method
>
> <%...@taglib prefix="s" uri="/struts-tags" %>
> <html>
> <head>
> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
> <title>Showcase - Conversion - Populate Object into Struts' action 
> List</title>
> </head>
> <body>
>
> <p/>
> An example populating a list of object (Person.java) into Struts' action 
> (PersonAction.java)
>
> <p/>
> See the jsp code <s:url var="url" action="showPersonJspCode" 
> namespace="/conversion" /><s:a href="%{#url}">here.</s:a><br/>
> See the code for PersonAction.java <s:url var="url" 
> action="showPersonActionJavaCode" namespace="/conversion" /><s:a 
> href="%{#url}">here.</s:a><br/>
> See the code for Person.java <s:url var="url" action="showPersonJavaCode" 
> namespace="/conversion" /><s:a href="%{#url}">here.</s:a><br/>
> <p/>
>
> <s:actionerror />
> <s:fielderror />
>
> <s:form action="submitPersonInfo" namespace="/conversion" method="post">
>    <%--
>        The following is done Dynamically
>    --%>
>    <s:iterator value="new int[3]" status="stat">
>        <s:textfield    label="%{'Person '+#stat.index+' Name'}"
>                        name="%{'persons['+#stat.index+'].name'}" />
>        <s:textfield    label="%{'Person '+#stat.index+' Age'}"
>                        name="%{'persons['+#stat.index+'].age'}" />
>    </s:iterator>
>
>    <%--
>    The following is done statically:-
>    --%>
>    <%--
>    <s:textfield    label="Person 1 Name"
>                    name="persons[0].name" />
>    <s:textfield    label="Person 1 Age"
>                    name="persons[0].age" />
>    <s:textfield    label="Person 2 Name"
>                    name="persons[1].name" />
>    <s:textfield    label="Person 2 Age"
>                    name="persons[1].age" />
>    <s:textfield    label="Person 3 Name"
>                    name="persons[2].name" />
>    <s:textfield    label="Person 3 Age"
>                    name="persons[2].age" />
>    --%>
>
>    <s:submit />
> </s:form>
> </body>
> </html>
>
>
> //here is the PersonAction.java used in showcase webapp
> /*
>  * $Id: PersonAction.java 471756 2006-11-06 15:01:43Z husted $
>  *
>  * Licensed to the Apache Software Foundation (ASF) under one
>  * or more contributor license agreements.  See the NOTICE file
>  * distributed with this work for additional information
>  * regarding copyright ownership.  The ASF licenses this file
>  * to you under the Apache License, Version 2.0 (the
>  * "License"); you may not use this file except in compliance
>  * with the License.  You may obtain a copy of the License at
>  *
>  *  http://www.apache.org/licenses/LICENSE-2.0
>  *
>  * Unless required by applicable law or agreed to in writing,
>  * software distributed under the License is distributed on an
>  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>  * KIND, either express or implied.  See the License for the
>  * specific language governing permissions and limitations
>  * under the License.
>  */
> package org.apache.struts2.showcase.conversion;
>
> import java.util.List;
>
> import com.opensymphony.xwork2.ActionSupport;
>
> /**
>  *
>  */
> public class PersonAction extends ActionSupport {
>
>    private List persons;
>
>    public List getPersons() { return persons; }
>    public void setPersons(List persons) { this.persons = persons; }
>
>
>
>    public String input() throws Exception {
>        return SUCCESS;
>    }
>
>    public String submit() throws Exception {
>        return SUCCESS;
>    }
> }
>
> the important bits are jsp reference to persons list here
>    <s:iterator value="new int[3]" status="stat">
>
>        <s:textfield    label="%{'Person '+#stat.index+' Name'}"
>
>                        name="%{'persons['+#stat.index+'].name'}" />
>
>        <s:textfield    label="%{'Person '+#stat.index+' Age'}"
>
>                        name="%{'persons['+#stat.index+'].age'}" />
>
>    </s:iterator>
>
> which references and iterates thru the List of persons from PersonAction
> private List persons;
>
> Action class does push its attributes on to OGNLstack so a reference such as
> "%{'persons['+#stat.index+'].name'}"
> works
> provided you have set stat to be the 'status' index
>
> Martin Gainty
> ______________________________________________
> Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité
>
> Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger 
> sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung 
> oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich 
> dem Austausch von Informationen und entfaltet keine rechtliche 
> Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von E-Mails koennen 
> wir keine Haftung fuer den Inhalt uebernehmen.
> Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le 
> destinataire prévu, nous te demandons avec bonté que pour satisfaire informez 
> l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci 
> est interdite. Ce message sert à l'information seulement et n'aura pas 
> n'importe quel effet légalement obligatoire. Étant donné que les email 
> peuvent facilement être sujets à la manipulation, nous ne pouvons accepter 
> aucune responsabilité pour le contenu fourni.
>
>
>
>
>> Date: Thu, 12 Nov 2009 13:16:08 +0100
>> From: carl.ballant...@cast-info.es
>> To: user@struts.apache.org
>> Subject: Re: Property Mapping in a iterator
>>
>> Hi Alex,
>>
>> I think you might need to add <constant name="struts.devMode"
>> value="true" /> in your struts.xml file.
>>
>>
>>
>> Quoting Alex Parvulescu <alex.parvule...@gmail.com>:
>>
>> > hello,
>> >
>> > I have been looking at Struts2 for a couple of days now, it seems nice
>> > and easy to work with.
>> >
>> > I have a problem that I don't really understand, maybe I'm missing
>> > some config settings or something.
>> >
>> > Let's say that I want to display a list of persons, and for each
>> > person I want to see the name.
>> > This is very straightforward:
>> >
>> > <s:iterator value="people" var="p">
>> >   <div id="row_<s:property value="id"/>">
>> >     <s:property value="name" />
>> >   </div>
>> > </s:iterator>
>> >
>> > Easy enough, but if I miss-spell the property name, I get no error,
>> > only a blank value.
>> > Is there a struts way to prevent these kinds of things from happening
>> > - like get some sort of error message.
>> >
>> > By the way, I am using Struts 2.1.6 and I'm not sure if this is the
>> > proper mailing list for this framework. Are you guys dealing with both
>> > Struts and Struts2 issues? As I've seen so far, Struts2 is pretty
>> > different than Struts.
>> >
>> > If I'm not in the proper place, please point me in the right direction.
>> >
>> > thanks,
>> > alex
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
>> > For additional commands, e-mail: user-h...@struts.apache.org
>> >
>> >
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
>> For additional commands, e-mail: user-h...@struts.apache.org
>>
>
> _________________________________________________________________
> Hotmail: Trusted email with Microsoft's powerful SPAM protection.
> http://clk.atdmt.com/GBL/go/177141664/direct/01/
> http://clk.atdmt.com/GBL/go/177141664/direct/01/
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to