Discussion:
import tag for dynamic content
Hassan Schroeder
2009-09-15 17:06:45 UTC
Permalink
On Tue, Sep 15, 2009 at 1:48 AM, paulbrickell
Does anyone know how to use the import tag to access dynamic content from the
current context?
I found this...
<c:set var="xmlURL"
value="${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}/x/y/z"/>
<c:import url="${xmlURL}" var="xml" />
and it works. But I cannot believe this is the right way to it.
<c:url var="xmlURL" value="/x/y/z"/>

would be easier :-)
--
Hassan Schroeder ------------------------ ***@gmail.com
twitter: @hassan
paulbrickell
2009-09-16 07:43:52 UTC
Permalink
Hassan,

Agreed. Just doesn't work.
Post by Hassan Schroeder
On Tue, Sep 15, 2009 at 1:48 AM, paulbrickell
Does anyone know how to use the import tag to access dynamic content from the
current context?
I found this...
<c:set var="xmlURL"
value="${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}/x/y/z"/>
<c:import url="${xmlURL}" var="xml" />
and it works. But I cannot believe this is the right way to it.
<c:url var="xmlURL" value="/x/y/z"/>
would be easier :-)
--
---------------------------------------------------------------------
--
View this message in context: http://www.nabble.com/import-tag-for-dynamic-content-tp25450335p25467489.html
Sent from the Taglibs - User mailing list archive at Nabble.com.
Hassan Schroeder
2009-09-16 13:48:39 UTC
Permalink
On Wed, Sep 16, 2009 at 12:43 AM, paulbrickell
Post by paulbrickell
Agreed. Just doesn't work.
? Uh, "doesn't work" exactly how?

This
<c:url var="xmlURL" value="/x/y/z"/>
sets `xmlURL` to a very different value compared to your original
<c:set var="url" value="x/y/z"/>

What's the exact error?
--
Hassan Schroeder ------------------------ ***@gmail.com
twitter: @hassan
paulbrickell
2009-09-16 14:05:46 UTC
Permalink
Hassan,

If I create a url with a context relative path (e.g. /x/y/z) and the I use
this in the url attribute of an import tag, the import tag seems to attempt
a lookup of a file in the web application.

So given this...

<c:url var="aURL" value="/x/y/z"/>
${aURL} Get resource at z
<c:import url="${aURL}" var="xml" />

The link in href attribute in the browser is a valid url, but the url
attribute in the import tag is not. I get a file not found exception for
/x/y/z. Import seems to want to lookup a static resource (html page for
example) located on the file system and not open connection to some network
resource. I am assuming from the name (import) that this is probably what is
expected. Doesn't help me though.

If I set the value in the URL to /x/y/z.html (assuming that resource exists)
all is well. So the question is can I 'import' dynamic content (from a
servlet in my case) rather than a static resource?

I guess I could point my URL to a JSP that 'includes' the content I want,
assuming that include works properly. I still think I am missing something.

Cheers,
Paul B.
Post by Hassan Schroeder
On Wed, Sep 16, 2009 at 12:43 AM, paulbrickell
Post by paulbrickell
Agreed. Just doesn't work.
? Uh, "doesn't work" exactly how?
This
<c:url var="xmlURL" value="/x/y/z"/>
sets `xmlURL` to a very different value compared to your original
<c:set var="url" value="x/y/z"/>
What's the exact error?
--
---------------------------------------------------------------------
--
View this message in context: http://www.nabble.com/import-tag-for-dynamic-content-tp25450335p25473112.html
Sent from the Taglibs - User mailing list archive at Nabble.com.
Hassan Schroeder
2009-09-16 14:36:16 UTC
Permalink
On Wed, Sep 16, 2009 at 7:05 AM, paulbrickell
Post by paulbrickell
If I create a url with a context relative path (e.g. /x/y/z) and the I use
this in the url attribute of an import tag, the import tag seems to attempt
a lookup of a file in the web application.
So given this...
<c:url var="aURL" value="/x/y/z"/>
${aURL} Get resource at z
<c:import url="${aURL}" var="xml" />
The link in href attribute in the browser is a valid url, but the url
attribute in the import tag is not. I get a file not found exception for
/x/y/z. Import seems to want to lookup a static resource (html page for
example) located on the file system and not open connection to some network
resource. I am assuming from the name (import) that this is probably what is
expected.
No, what you're describing works exactly correctly for me -- the
URL is accessed, and the rendered output, not a file, is fetched.

What value does ${aURL} display?
--
Hassan Schroeder ------------------------ ***@gmail.com
twitter: @hassan
paulbrickell
2010-07-29 10:03:36 UTC
Permalink
Then you're not doing it the way I have described.

I have been battling with this for ages. Every time I want to import
dynamically generated xml document it doesn't work. The URL gets mangled by
the import tag.

I can use the request parameters to form a full URL but that doesn't work
for a secure app because the credentials aren't shared.

Create a Jersey web service and use the tags as I have described. Just
doesn't work at all. I have resorted to writing my own tag.

Hey ho.
Post by Hassan Schroeder
On Wed, Sep 16, 2009 at 7:05 AM, paulbrickell
Post by paulbrickell
If I create a url with a context relative path (e.g. /x/y/z) and the I use
this in the url attribute of an import tag, the import tag seems to attempt
a lookup of a file in the web application.
So given this...
<c:url var="aURL" value="/x/y/z"/>
${aURL} Get resource at z
<c:import url="${aURL}" var="xml" />
The link in href attribute in the browser is a valid url, but the url
attribute in the import tag is not. I get a file not found exception for
/x/y/z. Import seems to want to lookup a static resource (html page for
example) located on the file system and not open connection to some network
resource. I am assuming from the name (import) that this is probably what is
expected.
No, what you're describing works exactly correctly for me -- the
URL is accessed, and the rendered output, not a file, is fetched.
What value does ${aURL} display?
--
---------------------------------------------------------------------
--
View this message in context: http://old.nabble.com/import-tag-for-dynamic-content-tp25450335p29294887.html
Sent from the Taglibs - User mailing list archive at Nabble.com.
Jeremy Boynes
2010-07-29 15:47:35 UTC
Permalink
As I read the spec, something like this should work:
<c:set var="url" value="/x/y/z"/>
<c:import var="doc" url="${url}"/>
<x:parse varDom="dom" doc="${doc}"/>

The <c:import> should dispatch to the servlet at "/x/y/z" in your application and store the response in ${doc} as a String. The <x:parse> should then parse that String into a Document stored in ${dom}.

If that's not working for you can you open a bug (ideally with something to reproduce the error or best of all a patch) and I'll look in to it.
Thanks
Jeremy
Post by paulbrickell
Then you're not doing it the way I have described.
I have been battling with this for ages. Every time I want to import
dynamically generated xml document it doesn't work. The URL gets mangled by
the import tag.
I can use the request parameters to form a full URL but that doesn't work
for a secure app because the credentials aren't shared.
Create a Jersey web service and use the tags as I have described. Just
doesn't work at all. I have resorted to writing my own tag.
Hey ho.
Post by Hassan Schroeder
On Wed, Sep 16, 2009 at 7:05 AM, paulbrickell
Post by paulbrickell
If I create a url with a context relative path (e.g. /x/y/z) and the I use
this in the url attribute of an import tag, the import tag seems to attempt
a lookup of a file in the web application.
So given this...
<c:url var="aURL" value="/x/y/z"/>
${aURL} Get resource at z
<c:import url="${aURL}" var="xml" />
The link in href attribute in the browser is a valid url, but the url
attribute in the import tag is not. I get a file not found exception for
/x/y/z. Import seems to want to lookup a static resource (html page for
example) located on the file system and not open connection to some network
resource. I am assuming from the name (import) that this is probably what is
expected.
No, what you're describing works exactly correctly for me -- the
URL is accessed, and the rendered output, not a file, is fetched.
What value does ${aURL} display?
--
---------------------------------------------------------------------
--
View this message in context: http://old.nabble.com/import-tag-for-dynamic-content-tp25450335p29294887.html
Sent from the Taglibs - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
Loading...