部分呈現表單字段輸入值I有一個編輯產品形式,其爲預填充來自DB的值。用戶可以更改一個或多個值並將表單發回。一個輸入字段稱爲T:,豆不會更新與t的值inputFileUpload是一個Ajax請求之後僅呈現,如果用戶選擇來改變產物通過保存按鈕image.During編輯形式的最終回發:inputFileUpload字段形式.The相關部分低於:JSF 2.0,不更新在bean
<h:form>
<tr>
<td>Product Image*:</td>
<td>
<h:graphicImage url="#{addItem.prodFileName}" width="100" height="100"/>
<br /><h:commandLink value="change image" >
<f:ajax render="uploadimage" execute="@this" listener="#{addItem.ChangeImage}"/>
</h:commandLink>
</td>
</tr>
<tr >
<td>
<h:panelGroup id="uploadimage">
<t:inputFileUpload rendered="#{addItem.editImgChange}" label="editImage" value="#{addItem.uploadedFile}" />
<h:messages for="prodimage"/>
<h:inputHidden id="hiddeneditimgchange" value="#{addItem.editImgChange}" />
</h:panelGroup>
</td>
</tr>
<h:commandButton value="save" action="#{addItem.EditItem}" />
</h:form>
如addItem bean是請求範圍及其代碼的相關部分是:
@ManagedBean
public class AddItem extends AbstractBean{
boolean editImgChange;
private UploadedFile uploadedFile;
//..
//getters and setters
public void ChangeImage(){
this.editImgChange=true;
}
public String EditItem() {
//some logic
}
}
我看過他們的一些回答幾個類似的問題我試圖製作bean ViewScoped,但它破壞了我預先填充表單值的初始邏輯。由於我對RequestScoped感到滿意,如果它的關閉正在影響t:inputFileUpload的更新,我已經保存了editImgChange標誌的狀態。當我查看bean的屬性都很好時,該標誌是true,但uploadedFile屬性爲null。
您具體是如何保存'editImgChange'標誌的狀態? – BalusC
使用上面窗體中panelGroup內部的inputhidden標籤。 – maya
這個價值究竟又是如何約束?通過「綁定」或「值」? – BalusC