部分呈现表单字段输入值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