Thanks for the responses to my question.

I agree totally with what you are saying, to try generating Struts tags from a 
Custom tag 
is completely the wrong approach - I can see that now (you know, "I see the 
light" :-)

Let me explain what I am trying to do, maybe somebody can point me in the right 
direction.

My website provides a login capability and each user has a security setting, 
this is just a 
number (security isn't too complicated).  Number 0 can simply browse around and 
make 
comments etc.  Security number 5 is allowed to manage the content, add and 
update 
database records that contain data that appear on the site.  Number 3 is 
allowed similar 
content management access but only on certain records.

When I display a page that contains some database records I then want to 
display 
"Update" and "Delete" links next to the appropriate data.

I could use a <logic:greaterThan...> tag to test the value of the security 
number and 
then display the link if appropriate.  This gets more complicated when the 
security 
number 3 is used, as then I have to test values on the record as well, suddenly 
I have 
nested <logic:..> tags and the page is starting to look a lot more complicated 
than it 
should.  The other problem with this approach is: "whether a user can update a 
record 
or not" is a business logic decision and shouldn't be in the interface.

Now, to complicate it even further, security number 2 is allowed to update 
records but 
uses a different form, in other words, they are only allowed to update certain 
values on 
the record.  Hence I have to vary the link generated in some instances.

I hope you are getting the picture.  This is why I was trying to use a custom 
tag that 
could still interact with my model, call business methods to make security 
decisions and 
vary the generated link accordingly.

And finally the question: How should I go about writing the "Update" link now 
that we all 
understand the problem?

Thanks in advance.

Kind regards
mc




On 19 Aug 2005 at 15:30, Craig McClanahan wrote:

> On 8/18/05, Murray Collingwood <[EMAIL PROTECTED]> wrote:
> > Hello all
> > 
> > Has anybody successfully used Stuts tags and Custom tags together?
> > 
> > For example:
> > Consider a custom tag with the following code:
> >   out.println("<html:link action=\"Update.do\">" + entry[ix] + 
> > "</html:link>");
> > 
> 
> Your question doesn't really describe what you are illustrating ...
> which appears to be that you want to dynamically create a *JSP* page,
> then have the page compiled and executed, on every request.  You're
> going to find that this solution is not practical, and that you should
> take another approach.
> 
> When you first start a webapp, you notice the slight delay when you
> access a JSP page the first time, so that it gets compiled?  Even if
> you jumped through all the technical hoops to output a JSP file and
> get it compiled (technically feasible), you're going to be imposing
> that kind of overhead on *every* request, instead of just the first
> request for that page.  Even if everything else in your app was
> instantaneous, the response time of your app would be awful.
> 
> A far better approach for the particular case you are using here is to
> use either an expression or some subordinate tag to calculate the
> dynamic part of your output.  Assume for a moment that your Struts
> action puts the "entry" array into request scope.  Now you can do
> something like:
> 
>     <html:link action="Update.do">
>         <c:out value="${entry[3]}"/>
>     </html:link>
> 
> Of course, the reason you probably want to do this in the first place
> is that you want to create a bunch of links ... so put the same sort
> of structure inside a looping tag (renaming the request scope
> attribute containing your array to be "entries" to be more readable):
> 
>     <c:forEach var="entry" items="entries">
>         <html:link action="Update.do">
>             <c:out value="$entry"/>
>         </html:link>
>     </c:forEach>
> 
> The <c:forEach> tag exposes the current element in the array as a page
> scope attribute named by the "var" attribute, and you can therefore
> reference the current element directly inside the loop.
> 
> Craig
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 
> -- 
> No virus found in this incoming message.
> Checked by AVG Anti-Virus.
> Version: 7.0.338 / Virus Database: 267.10.13/78 - Release Date: 19/08/2005
> 



FOCUS Computing
Mob: 0415 24 26 24
[EMAIL PROTECTED]
http://www.focus-computing.com



-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.338 / Virus Database: 267.10.13/78 - Release Date: 19/08/2005


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

Reply via email to