2015-10-28 56 views
0

我在ui:repeat中嘗試使用p:fileUpload時遇到問題。用戶選擇他是否想上傳文件,或者他選擇selectOneMenu中的實體。我的陣列的吸氣劑或二載體似乎也沒有被調用。u:中的多個p:fileUpload:重複

<ui:repeat value="#{adminCreateTeam.teamComposition}" varStatus="status"> 
     <h:panelGroup rendered="#{ (adminCreateTeam.memNew[status.index].booleanValue())}"> 
      <!-- create new user -->        
      ... 
      <!-- image associated with the user --> 
      <p:fileUpload 
       value="#{adminCreateTeam.memPics[status.index]}" 
      fileLimit="1" 
      mode="simple"/> 
     </h:panelGroup> 
</ui:repeat> 

我試圖與一個陣列和用於memPics一個ArrayList,在這兩種情況下,這些的getter和setter未調用。但是,當使用ArrayList時,如果我不把它放在它的空值,我會有一個indexOutOfBondException。所以我預先填充空值。我不理解,因爲無論是制定者,也不是吸被稱爲..

所以mempics:

private List<UploadedFile> memPics; 

@PostConstruct 
public void init() { 
    teamComposition = new User[5]; 
    memPics = new ArrayList<UploadedFile>(); 
    memPics.add(null); 
    memPics.add(null); 
    memPics.add(null); 
    memPics.add(null); 
    memPics.add(null); 
} 
+0

如何觸發上傳文件的操作?如果你不小心忘記了,那麼''p:fileUpload>'with'mode =「simple」'就可以工作,所以''ajax'與命令組件相關的觸發動作需要被禁用。 – Tiny

+0

@BalusC請問您可以展開「更好地將模型包裹在真實模型對象中,而不是依賴循環索引」嗎?我發現我的代碼也不好,但我沒有真正的答案。抱歉沒有指定我的版本,我認爲PF 5.2是最新的。 – Ced

+0

@Tiny謝謝它現在的作品,我通常使用高級模式,這就是爲什麼我沒有捕捉到。請將其張貼爲答案,以便我可以接受它。當談到問題在評論中得到回答時,我有點強迫症。 :p – Ced

回答

0

與命令組件觸發的動作相關的AJAX需要與模式被禁用=「簡單」上班