Ok. That's pretty much what I'm doing too.
I'll post some code snippets.
Here's two ways to pop up a new window. I haven't gotten the
jenia4Faces PopupFrame component working to my satisfaction yet, but
the command link works fine. I'm using something other than _blank
because I want it to always reuse the window rather than recreating a
new one each time.
<h:commandLink id="contentViewButton"
immediate="#{true}"
value="View In New Window"
action="#{editAnnouncementsPage.showContentData}"
target="View Content Data"
/>
<jp:popupFrame id="contentPopupFrame"
immediate="#{true}"
height="450px" width="550px"
center="true"
actionOpen="#{editAnnouncementsPage.showContentData}">
<h:outputText value="View Popup"/>
</jp:popupFrame>
showContentData() looks as follows. viewContentDataPage is a
request-scoped backing bean that will be used by the newly displayed
page. showContentData initializes it with my content to display.
public String showContentData()
{
Content selectedContent =
(Content)this.announcementContentDataList.getRowData();
ValueBinding binding =
FacesContext.getCurrentInstance().getApplication().createValueBinding("#{viewContentDataPage}");
ViewContentData viewContentDataPage =
(ViewContentData)binding.getValue(FacesContext.getCurrentInstance());
viewContentDataPage.setContent(selectedContent);
return "showSelectedContentData";
}
Because viewContentDataPage is request-scoped, I use t:saveState to
preserve the "content" attribute of the viewContentDataPage. This
tag exists on both of my pages. It doesn't matter where you place it.
<t:saveState id="savedSelectedAnnouncementContent"
value="#{viewContentDataPage.content}"/>
Here's the more interesting content types I display now. It's unclear
to me how you'd display some of the more exotic data types (like pdfs)
inline. Instead, you'd probably provide the ability to download the
data.
<sandbox:graphicImageDynamic id="imageDisplay"
rendered="#{viewContentDataPage.isImageContentType}"
getContentTypeMethod="#{viewContentDataPage.content.getContentType}"
getBytesMethod="#{viewContentDataPage.content.contentData.getData}"/>
<h:panelGroup id="textPlainDisplayPanel"
rendered="#{viewContentDataPage.isTextPlainContentType}">
<pre>
<h:outputText id="textPlainDisplay"
value="#{viewContentDataPage.content.contentData.text}"/>
</pre>
</h:panelGroup>
<h:outputText id="htmlPlainDisplay"
rendered="#{viewContentDataPage.isTextHtmlContentType}"
escape="#{false}"
value="#{viewContentDataPage.content.contentData.text}"/>
<h:outputText id="unknownDisplay"
rendered="#{viewContentDataPage.isUnknownContentType}"
value="[Unable to display unknown content type]"/>
On 9/30/05, Nicolas GENSOLLEN <[EMAIL PROTECTED]> wrote:
> Mike you are my hero !!!! :))
>
> I want to display a link on a jsf page, by clicking on this link my document
> display in a new page.
>
> I tried using a commandLink component with a target="_blank" but the result
> is not good.
>
> My blog may be an image, a pdf or anyelse other file ....
>
> Thank you for your help !
>
>
> ----- Original Message -----
> From: "Mike Kienenberger" <[EMAIL PROTECTED]>
> To: "MyFaces Discussion" <[email protected]>
> Sent: Friday, September 30, 2005 5:59 PM
> Subject: Re: Blob and JSF
>
>
> I've just finished doing this during the last week, so it can be done.
>
> You'll have to provide more details of what you're trying to do,
> though. There are many different ways to do it.
>
> I use Cayenne to pull the data from the database, and the new sandbox
> graphicImageDynamic component to display image data, and standard
> h:outputText components to display my plain-text and html-text data.
>
> On 9/30/05, Nicolas GENSOLLEN <[EMAIL PROTECTED]> wrote:
> >
> > Hello everybody,
> >
> > I've a problem to display a blob in a jsf page, i don't find any way to do
> > it,
> > and I would know if someone succeed doing this ?
> >
> > Thank you !
> >
> > Nicolas Gensollen
> >
>
>