I have gone through Pawel's example and it is not working for me. Here is the iterator:
<s:iterator value="allCustomers" id="iter" status="table_stat"> I created three methods in my action class: public boolean getCanEditCustomer() { return false ; } public boolean getCanEditCustomer(Integer anInt) { return false ; } public boolean getCanEditCustomer(Customer aCustomer) { return false ; } These are dummy methods just to see if everything will work. I set an Eclipse breakpoint on each return statement. So in theory, Eclipse should stop on one of the statements whether I pass in nothing, an integer, or a Customer object. The results are: <s:if test="canEditCustomer"> (This stops in the first method) <s:if test="canEditCustomer()"> (This never stops) <s:if test="canEditCustomer(5)"> (This never stops) <s:if test="canEditCustomer(iter)"> (This never stops) So it seems like no parameters are being passed in; in fact when I use the braces to indicate no parameter, that doesn't work either. ________________________________ From: Wes Wannemacher <w...@wantii.com> To: Struts Users Mailing List <user@struts.apache.org> Sent: Wednesday, September 23, 2009 4:20:33 PM Subject: Re: Question about 'if' tag In addition to what Pawel is saying, be careful that you also check the 'canEditCustomer(target)' call in the target action since there is nothing to stop someone from figuring out the URL pattern and editing people they weren't intended to edit. -Wes 2009/9/23 Paweł Wielgus <poulw...@gmail.com>: > Hi Dennis, > You are nesting tags, it's not possible/permitted, > what You should do is something like: > <s:iterator value="..." id="iter"> or <s:iterator value="..." var="iter"> > .... > <s:if test="user.canEditCustomer(iter)"> > > Which simply is naming your iterator variable to "iter" and use it in if tag, > depending on struts2 version it will be id or var. > > Best greetings, > Paweł Wielgus. > > > 2009/9/23 Dennis Atkinson <dennisatkinson...@yahoo.com>: >> Hi all. >> >> In my Struts2 application, I have a collection of Customer objects, and >> various users have the rights to edit some of them and not others. I have >> created a Struts iterator tag, and in the iterator, I put the various >> Customer attributes into an HTML table. All this works. >> >> In one cell of the table, I have the string "Edit", and if it's clicked, it >> goes to another Action class to edit that particular Customer object. All >> that works too. >> >> What I want to do is only show the "Edit" string if the user has the right >> to edit that Customer. I'm trying to set a "<s:if" tag to do this, but I am >> sure I'm not doing it right (because it's not working). >> >> I am trying: >> >> <s:if test="%{user.canEditCustomer(<s:property>)}"> >> >> hoping "property" is the current object in the iteration. But whatever is >> happening, this doesn't do what I hope it does. Am I anywhere close to the >> right solution here? >> >> Thanks, >> Dennis >> >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org > > -- Wes Wannemacher Head Engineer, WanTii, Inc. Need Training? Struts, Spring, Maven, Tomcat... Ask me for a quote! --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org