对方法进行了ajax调用,该方法在bean中设置了String值。
var url = contextPath+'/SlCustomObjectCalls?stCallType=attachmentList&stMandDocumentName='+stMandDocumentName;
$.ajax({
type: 'POST',
url: url,
dataType: 'json',
success: function(data) {
dlg1.show();
}
});
这将设置String [] attachmentList中的值。
public class AttachmentViewHelper {
String[] attachmentList;
public String[] getAttachmentList() {
return attachmentList;
}
public void setAttachmentList(String[] attachmentList) {
this.attachmentList = attachmentList;
}
public void getAttachments(){
try {
String stDocCode = "someval";
String stProcCode = "";
String stDocNumber ="";
String stComapny = "";
// gets String []
attachmentList = getListOfAttahments(stDocCode);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
并且在成功时ajax打开对话框,我想在其中显示附件列表的值。
<p:dialog id="downloadAttachemntDiag" header="Download" widgetVar="dlg1" width="300" height="200" resizable="false" draggable="false"
modal="true">
<div id="attachment">#{AttachmentViewHelper.attachmentList}</div>
现在我遇到的问题是,对话框没有显示任何值。 尝试过使用 c:foreach 和 ui:repeat ,但它没有用。 提前谢谢。
答案 0 :(得分:0)
我不知道你做过的ajax电话。 但是我知道的一件事是你的对话框最初发送的是一个永不更新的空列表。
因为我不太了解jsf中的vanilla ajax,你可以使用ajax标签或primefaces的update属性。
<p:commandButton ... update="downloadAttachemntDiag"/>