Or you can use Decorators :

                <display:table name="list" 
decorator="mypackage.decorator.MyDecorator">
                        <display:column titleKey="colName" 
property="attrNameNotInBean"/>
                </display:table>

public class MyDecorator extends TableDecorator {
        public String getAttrNameNotInBean() {
                MyBean bean = (MyBean) getCurrentRowObject();
                return "<input type=\"text\" name=\"" + bean.getName() + 
"\" size=\"90\" />";
        }
}

Michaël



"Musachy Barroso" <[EMAIL PROTECTED]> 
01/11/2007 22:12
Veuillez répondre à
"Struts Users Mailing List" <user@struts.apache.org>


A
"Struts Users Mailing List" <user@struts.apache.org>
cc

Objet
Re: [S2] Display Tag? (2.0.11)






You can access the values published by displaytag using "#attr",  like:

<dt:table name="products" id="row" class="dt">
   <dt:column>
       <s:property value="#attr.row.name" />
   </dt:column>
</dt:table>

musachy

On 11/1/07, Jake Robb <[EMAIL PROTECTED]> wrote:
> I've used DisplayTag with S1 before, with excellent results.  I'm also
> using it in S2 in a few cases, and it's working fine.
>
> However, now I want to use it to render a form.  Each row in the table
> will contain a couple of input tags, and the table as a whole represents
> a single List on my action.
>
> Without DisplayTag, I can accomplish that as follows:
>
>   <s:iterator value="rules" status="status" id="rule">
>     <div class="resultRow${status.odd ? ' highlight' : ''}">
>       <div class="name">
>         <s:property value="name" />
>       </div>
>       <div class="value">
>         <s:textfield name="%{'rules['+#status.index+'].value'}" label=""
> size="90" />
>       </div>
>     </div>
>   </s:iterator>
>
>
> I converted the code above as follows:
>
>   <display:table htmlId="rulesTable" list="rules" id="rule">
>     <display:column title="Rule Name">
>       <s:property value="name" />
>     </display:column>
>     <display:column title="Rule Name">
>       <s:textfield name="rules[rule_rowNum].value" label="" size="90" />
>     </display:column>
>   </display:table>
>
>
> But that didn't work, because DisplayTag doesn't push rule_rowNum onto
> the stack.  So I added a push tag:
>
>   <display:table htmlId="rulesTable" list="rules" id="rule">
>     <s:push value="<%= rule_rowNum.toString() %>" id="rowNum"/>
>     <display:column title="Rule Name">
>       <s:property value="name" />
>     </display:column>
>     <display:column title="Rule Name">
>       <s:textfield name="rules[rowNum].value" size="90" />
>     </display:column>
>   </display:table>
>
>
> Then I discovered that s:push doesn't accept runtime expressions, just
> like everything else in 2.0.11.
>
> So, how do I accomplish this?  I guess I could keep it the old way, but
> I'd really rather be consistent.
>
> -Jake
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


-- 
"Hey you! Would you help me to carry the stone?" Pink Floyd

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to