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
