나는 솔기를 사용하고 있으며 일련의 웹 페이지에는 모두 동일한 작업으로 백업되어 있습니다. 첫 번째 웹 페이지에는 파일을 업로드 할 수있는 옵션이 있습니다. 마지막 페이지에서 몇 가지 정보를 확인한 다음 모든 정보가 저장됩니다. 이 확인 페이지에는 처음부터 업로드 된 파일을 다운로드 할 수있는 링크가 있습니다.Seam 다운로드 제어
다운로드 링크가 다른 페이지로 이동하려는 경우 (파일을 다운로드하거나 다른 창/탭에서 열지 않고) 링크를 따르거나 다른 페이지에서 열 경우 탭을 누르면 뒷받침 작업이 더 이상 원래 대화의 일부가 아니므로 모든 값이 null입니다.
여기 여기 내 자원 <s:resource xmlns="http://www.w3.org/1999/xhtml" xmlns:s="http://jboss.com/products/seam/taglib" data="#{myAction.pdf}" contentType="application/pdf" fileName="#{myAction.pdfName}"/>
의 다운로드 컨트롤의 :
@Name("myAction")
@Scope(ScopeType.CONVERSATION)
public class MyAction {
private byte[] pdf;
private String pdfName;
public String getPdfName() {
return pdfName;
}
public void setPdfName(String pdfName) {
this.pdfName = pdfName;
}
public byte[] getPdf() {
return pdf;
}
public void setpdf(byte[] pdf) {
this.pdf = pdf;
}
public boolean hasPdf(){
return true;
}
링크는 파일 이름으로 잘 렌더링하고 이동 않습니다 클릭 : 여기
<s:download src="/exportPdf.xhtml" rendered="#{myAction.hasPdf}" >
<h:outputText value="#{myAction.pdfName}"/>
</s:download>
액션 클래스의 pdf의 바이트 배열을 돌려 줄 getPdf() 메소드 후행 작업의 모든 것이 이제는 null입니다. 어떤 이유로 링크 된 리소스가 원래 작업의 범위에 포함되지 않은 것으로 보입니다.
s : download 태그의 'propagation'속성을 사용해 보셨습니까? 이렇게하면 현재 대화를 전파 할 수 있습니다. – DaveB