私はすでにいくつかのリソースを見つけました:
しかし、私の開発環境は少し異なります。
- JSF2.0
- プライムフェイス 4.0
- 春 3.1.1
- Jboss シーム 2.3
- JBoss AS 7.1.1 最終版
使わなければJBoss Seam
OKです。JBoss Seam
私のプロジェクトには多くのクラスがあるため、削除できません。私たちのチームは、これらの環境で開発を続ける必要があります。
example_2.xhtml
<h:form id="attachmentForm" enctype="multipart/form-data">
<p:dataTable var="attachment" value="#{ImageActionBean.proposalAttachmentList}" rows="1" paginator="true">
<p:column style="width:50px;">
<h:outputText value="#{attachment.id}" />
</p:column>
<p:column style="width:150px;">
<h:outputText value="#{attachment.contextType}" />
</p:column>
<p:column>
<p:graphicImage value="#{ImageActionBean.streamedImage}">
<f:param name="attachmentId" value="#{attachment.id}"/>
</p:graphicImage>
</p:column>
</p:dataTable>
</h:form>
ImageActionBean.java
@Scope(ScopeType.CONVERSATION)
@Name("ImageActionBean")
public class ImageActionBean {
private boolean initFlag = true;
@In("#{ProposalItemService}")
private IProposalItemService proposalItemService;
@In("#{AttachmentFilter}")
private AttachmentFilter attachmentFilter;
private List<ProposalAttachment> proposalAttachmentList;
@Begin(join = true)
public void init() {
initFlag = false;
proposalAttachmentList = proposalItemService.findProposalAttachById("PIT00000000000010116012014");
}
public boolean getInitFlag() {
return initFlag;
}
public List<ProposalAttachment> getProposalAttachmentList() {
return proposalAttachmentList;
}
public StreamedContent getStreamedImage() {
FacesContext context = FacesContext.getCurrentInstance();
if (context.getCurrentPhaseId() == PhaseId.RENDER_RESPONSE) {
return new DefaultStreamedContent();
} else {
String attachmentId = context.getExternalContext().getRequestParameterMap().get("attachmentId");
System.out.println("Attachment ID : " + attachmentId);
IAttachment attachment = attachmentFilter.findAttachment("ProposalAttachment", attachmentId);
return new DefaultStreamedContent(new ByteArrayInputStream(attachment.getData()), attachment.getContextType());
}
}
}
日付テーブル:
スタックトレース :
17:16:18,257 INFO [stdout] (http-localhost-127.0.0.1-8080-1) 17:16:18,257 DEBUG [org.jboss.seam.contexts.Contexts] destroying: org.jboss.seam.core.manager
17:16:18,257 INFO [stdout] (http-localhost-127.0.0.1-8080-1) 17:16:18,257 DEBUG [org.jboss.seam.contexts.Contexts] destroying: attachment
17:16:18,257 INFO [stdout] (http-localhost-127.0.0.1-8080-1) 17:16:18,257 DEBUG [org.jboss.seam.contexts.Contexts] destroying: org.jboss.seam.transaction.synchronizations
17:16:18,257 INFO [stdout] (http-localhost-127.0.0.1-8080-1) 17:16:18,257 DEBUG [org.jboss.seam.contexts.Contexts] destroying: org.jboss.seam.web.servletContexts
17:16:18,257 INFO [stdout] (http-localhost-127.0.0.1-8080-1) 17:16:18,257 DEBUG [org.jboss.seam.contexts.Contexts] destroying: org.jboss.seam.web.requestContextPath
17:16:18,257 INFO [stdout] (http-localhost-127.0.0.1-8080-1) 17:16:18,257 DEBUG [org.jboss.seam.contexts.Contexts] destroying: org.jboss.seam.core.events
17:16:18,257 INFO [stdout] (http-localhost-127.0.0.1-8080-1) 17:16:18,257 DEBUG [org.jboss.seam.contexts.Contexts] destroying: org.jboss.seam.web.requestServletPath
17:16:18,257 INFO [stdout] (http-localhost-127.0.0.1-8080-1) 17:16:18,257 DEBUG [org.jboss.seam.contexts.FacesLifecycle] <<< End JSF request for /insudemo/view/example_2.se
am
17:16:18,277 INFO [stdout] (http-localhost-127.0.0.1-8080-1) 17:16:18,277 DEBUG [org.jboss.seam.init.Initialization] Using Java hot deploy
17:16:18,280 INFO [stdout] (http-localhost-127.0.0.1-8080-1) 17:16:18,280 DEBUG [org.jboss.seam.util.Resources] Loaded resource from servlet context: jndi:/default-host/ins
udemo/view/login.page.xml
17:16:18,280 INFO [stdout] (http-localhost-127.0.0.1-8080-1) 17:16:18,280 DEBUG [org.jboss.seam.util.Resources] Loaded resource from servlet context: jndi:/default-host/ins
udemo/WEB-INF/pages.xml
17:16:18,280 SEVERE [org.primefaces.application.PrimeResourceHandler] (http-localhost-127.0.0.1-8080-1) Error in streaming dynamic resource. null
17:16:18,365 INFO [stdout] (http-localhost-127.0.0.1-8080-1) 17:16:18,365 DEBUG [org.jboss.seam.init.Initialization] Using Java hot deploy
17:16:18,368 INFO [stdout] (http-localhost-127.0.0.1-8080-1) 17:16:18,368 DEBUG [org.jboss.seam.util.Resources] Loaded resource from servlet context: jndi:/default-host/ins
udemo/view/login.page.xml
17:16:18,369 INFO [stdout] (http-localhost-127.0.0.1-8080-1) 17:16:18,369 DEBUG [org.jboss.seam.util.Resources] Loaded resource from servlet context: jndi:/default-host/ins
udemo/WEB-INF/pages.xml
17:16:18,369 SEVERE [org.primefaces.application.PrimeResourceHandler] (http-localhost-127.0.0.1-8080-1) Error in streaming dynamic resource. Expression cannot be null
ところで、出力されたメッセージ ( System.out.println("Attachment ID : " + attachmentId);
) がスタック トレースに表示されませんでした