Jim, "actor" is precisely what I meant!
It goes /context/controller/actor/usecase (in my case)
Sorry I didn't say that correctly.
But as you point out, I think it doesn't change the point of the post, that I need to manually make sure the name of the controller servlet gets into the hyperlinks.
I wonder if a mapping of "/services" work better than "/services/*". Haven't tried that . . .
Thanks, Erik
Jim Barrows wrote:
-----Original Message----- From: Erik Weber [mailto:[EMAIL PROTECTED] Sent: Wednesday, July 21, 2004 11:32 AM To: Struts Users Mailing List Subject: Re: Tag question
Sorry, I should have explained better what I am doing.
My controller Servlet is mapped to /services/*
All requests for JSP pages go through the controller, via action mappings. The actions have paths like:
/usecase/view_edit_page /usecase/save_existing_record /usecase/view_add_page /usecase/add_new_record
So the full links look like:
<context>/services/usecase/view_edit_page
meanhwhile other resources have paths like:
<context>/images/some_image.gif
This keeps other resources out of the scope of the controller (and perhaps into the scope of some other servlet). Also, direct JSP access is prohibited.
So in places where I am building hyperlinks (within JSPs), I need to get "/services" into each link, in front of the action URI, but behind the context. And I want to do this in a portable way (in case the Servlet mapping changes).
If you use html:link and forwards then you can do whatever you want, and won't have to change the links themselves. This would be pretty portable as well.
So the idea is to put something like <html:rewrite page="${controller_path}<action_URI_here>"> which literally would be "/services" + "/usecase/action" or "/services/usecase/action". Using the "page" attribute to the tag makes it come out right ("/context/services/usecase/action").
(When I say "usecase" here I really should say "collection of usecases" or "function group" to be more accurate).
I would be interested in hearing other mapping strategies.
I map jsp and directories by actor rather then use case, or use case package. Makes everything easier (especially declaritive security, then again I've kept the *.do mapping, rather then what you're doing. That would make your url something like services/actor/useCase, which doesn't get around your problem.
For now I'm making sure the JSP can call a method or access a variable that returns "/services".
Erik
Christian D Hahn wrote:
Are you mapping the jsp to /services in the web.xml? if you do, getServletPath should return the path you are looking for.same value
<servlet> <servlet-name>jsp</servlet-name> <jsp-file>/usecase/page.jsp</jsp-file> </servlet>
<servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>/services</url-pattern> </servlet-mapping>
-Chris
Erik Weber wrote:
Hmm I must be doing something wrong. That's giving me the
hold theas Erez's example. Strange, I would have expected it to give me "/services". I wonder how I am causing it to give me "/usecase/page.jsp".
atta-ur rehman wrote:
Hi Erik,
This one worked for me:
<c:set var="v"> <%= request.getServletPath() %> </c:set>
<c:out value="${v}"/> <bean:write name="v"/>
HTH,
ATTA
On Tue, 20 Jul 2004 16:20:30 -0400, Erik Weber <[EMAIL PROTECTED]> wrote:
How can I set a variable (I assume with c:set) that will
---------------------------------------------------------------------value of request.getServletPath, so that I can use it in el tags?
Thanks, Erik
---------------------------------------------------------------------To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]