And separate ones for Trinidad and Tomahawk too, I think!

-- Adam


On 6/14/07, Martin Marinschek <[EMAIL PROTECTED]> wrote:
We should open a JIRA issue to go through MyFaces and fix this
wherever necessary.

thanks!

regards,

Martin

On 6/14/07, Scott O'Bryan <[EMAIL PROTECTED]> wrote:
> That's the rule of thumb.  Yes.
>
> Martin Marinschek wrote:
> > May I try to put this shorter -
> >
> > actionUrl --> you'll see all portlets output, except you link to an
> > external page,
> >
> > resourceUrl --> you'll see only your output always
> >
> > is correct?
> >
> > regards,
> >
> > Martin
> >
> > On 6/14/07, Scott O'Bryan <[EMAIL PROTECTED]> wrote:
> >> Adam,
> >>
> >> Your right that they should be the same.  Unfortunatly they are not.
> >> It's one of the many things that's wrong about Portals in the JSF spec
> >> and it comes with dabbling in theory rather then actually trying to get
> >> something valuable (like an complete and complex renderkit) working with
> >> a portal.  My guess is they had a series of "Hello World" apps that they
> >> tested with the RI taglib in a portal.  As a result, the IBM guys didn't
> >> do a very good job on considering all the implications.  That's one of
> >> the reasons JSR-301 started with a renderkit like Trinidad as one of
> >> it's primary test cases.
> >>
> >> The reason that Martain believe these should be resouce urls is that the
> >> PortletResponse.encodeResourceUrl will correctly resolve "external"
> >> links.  This means that passing in http://www.google.com will return
> >> http://www.google.com.  Things in the portal web application will return
> >> urls and links to something inside the portal application.  The problem
> >> is that once this resouce url gets set on the outside page, you have the
> >> potential of being out-of-context and you will most definatly switch
> >> from running in a portal engine to running in a servlet engine.  Also,
> >> if the link your encoding is to a FacesResource, the bridge cannot be
> >> referenced by the goLink because the bridge is a portlet which needs to
> >> be referenced by a portlet (Action) url.
> >>
> >> That's the reason that in 301, we take this encoding complexity into the
> >> bridge and the symantic becomes much simpler.  The rule of thumb for
> >> encoding (and you'll be right say 90% of the time) is that if it's
> >> appropriate for the portal to add it's own markup (including other
> >> portlets) to your returned content then it should be an action url.
> >> Otherwise it should be a resource url.  There are certainly exceptions
> >> to this (unfortunately) but the rule of thumb generally works.
> >>
> >> Things that you would "think" are the same (such as goLinks and Iframes)
> >> you'll discover are NOT the same if you apply that rule of thumb.  It's
> >> appropriate to have portal content in the base page referred to by the
> >> goLink.  It is NOT appropriate for an iframe.
> >>
> >> Scott
> >>
> >>
> >>
> >> Adam Winer wrote:
> >> > It sounds like you're saying that a goLink should
> >> > be an action, but an iframe should be a resource?
> >> > I've always assumed the two should be identical.
> >> >
> >> > The Javadoc for ExternalContext is incredibly unhelpful
> >> > here.  I wish the IBM EG member who contributed that
> >> > API had made this clear back then!  Especially confusing
> >> > is the text:
> >> >
> >> > Portlet: This must be the value returned by the
> >> > javax.portlet.PortletResponse method encodeURL(url).
> >> >
> >> > ... included on *both* encodeActionURL() and
> >> > encodeResourceURL().  This makes it sound as though
> >> > the two are required to have exactly the same behavior!?!
> >> >
> >> > -- Adam
> >> >
> >> >
> >> >
> >> > On 6/14/07, Scott O'Bryan <[EMAIL PROTECTED]> wrote:
> >> >> I agree with Adam.  The distinction is NOT post vs. get, rather the
> >> >> distinction is something that's a piece of a page v.s something
> >> that's a
> >> >> complete page.
> >> >>
> >> >> So what's the difference.  The difference is that the Portal sees
> >> action
> >> >> urls as needing to be posted in context of the main page.  On an
> >> action
> >> >> url, the portal will process all other portlets as well and return a
> >> >> page with markup generated from the portal (not directly from the
> >> >> portlet).  With resource urls, the portal doesn't muck with anything.
> >> >>
> >> >> Now Faces somewhat confuses this issue as there is an encode for both
> >> >> the action and the resource URL.  I can tell you that, in general,
> >> >> JSR-168 would expect you to encode goLinks as stuff as "action" urls.
> >> >> The encode action url method in 301 is smart enough to figure out
> >> >> whether the resource your trying to reference is a Faces viewId or
> >> some
> >> >> other external page.  If it's an external url the encoded url will
> >> hit
> >> >> that resource directly.  If it's a faces page, the bridge will
> >> generate
> >> >> an actionUrl that will make a request to the new view id through the
> >> >> bridge.  Without encoding this as an action url though, you would
> >> loose
> >> >> all of your portal context.
> >> >>
> >> >> There are some instances where you may want to use a resource url
> >> >> (iframes and PPR are a perfect example), but usually links should be
> >> >> action urls.
> >> >>
> >> >> Scott
> >> >>
> >> >> Adam Winer wrote:
> >> >> > I don't see why - what is the difference between
> >> >> > a link to a page and an iframe pointing at that page?
> >> >> > It's exactly the same HTTP request.  If <a href>
> >> >> > should use getActionUrl(), then iframe and frame
> >> >> > srcs also should.
> >> >> >
> >> >> > -- Adam
> >> >> >
> >> >> >
> >> >> > On 6/13/07, Jesse Alexander (KSFD 121)
> >> >> > <[EMAIL PROTECTED]> wrote:
> >> >> >> Adam mentions iframe/frame-src attributes... I guess those would
> >> >> >> qualify as resource-url's ?
> >> >> >>
> >> >> >> regards
> >> >> >> Alexander
> >> >> >>
> >> >> >> -----Original Message-----
> >> >> >> From: Martin Marinschek [mailto:[EMAIL PROTECTED]
> >> >> >> Sent: Thursday, June 14, 2007 6:25 AM
> >> >> >> To: MyFaces Development
> >> >> >> Subject: Re: Portlets & <a href="">: resource or action URL?
> >> >> >>
> >> >> >> Definitely encodeActionUrl, yes, from what I read in the portlet
> >> >> spec.
> >> >> >> Obviously the original link implementors thought the
> >> distinction was
> >> >> >> about form post versus get - but the distinction is about query
> >> >> >> links/form submissions versus inclusion of resources in the page.
> >> >> >>
> >> >> >> regards,
> >> >> >>
> >> >> >> Martin
> >> >> >>
> >> >> >> On 6/14/07, Adam Winer <[EMAIL PROTECTED]> wrote:
> >> >> >> > Simple (I imagine) question:
> >> >> >> >
> >> >> >> > For a link's "href", should we be calling encodeResourceURL()
> >> >> >> > or encodeActionURL()?
> >> >> >> >
> >> >> >> > I've always assumed these are action URLs.  I see other
> >> >> >> > code out there (MyFaces outputLink, for example) that
> >> >> >> > considers these resource URLs.
> >> >> >> >
> >> >> >> > (Whatever answer we arrive at should apply equally to
> >> >> >> > iframe and frame "src" attributes, I believe).
> >> >> >> >
> >> >> >> > -- Adam
> >> >> >> >
> >> >> >>
> >> >> >>
> >> >> >> --
> >> >> >>
> >> >> >> http://www.irian.at
> >> >> >>
> >> >> >> Your JSF powerhouse -
> >> >> >> JSF Consulting, Development and
> >> >> >> Courses in English and German
> >> >> >>
> >> >> >> Professional Support for Apache MyFaces
> >> >> >>
> >> >> >
> >> >>
> >> >>
> >> >
> >>
> >>
> >
> >
>
>


--

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces

Reply via email to