我试图在通过commandlink 发出ajax 请求后在表单中显示一个字段。但是,当我单击链接时,我得到一个malformedXML 错误。xhtml 文件如下所示:
<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 event="click" render="uploadimage" execute="@this" listener="#{addItem.ChangeImage}"/>
</h:commandLink>
</td>
</tr>
<tr >
<td>
<t:inputFileUpload rendered ="#{addItem.editImgChange}" label="editImage" id="uploadimage" value="#{addItem.uploadedFile}" />
<h:messages for="prodimage"/>
</td>
</tr>
.
.
</h:form>
AddItem bean 是 RequestScoped,它具有以下代码行:
@ManagedBean
public class AddItem extends AbstractBean {
//..
boolean editImgChange=false;
//...
public void ChangeImage(){
this.editImgChange=true;
}
}
简而言之,我只想在用户单击更改图像链接后显示 t:inputFileUpload 字段。我在 AddItem bean 中保留了一个标志 editImgChange,其初始值为 false,一旦用户单击更改图像链接,该标志就会更改为 true。程序转到 ChangeImage() 方法,但在那之后我得到了错误
“malformedXML:更新期间:j_idt30:找不到上传图像”
.
我也会对完全不同的解决方案感到满意,以达到相同的结果,以防我的设计不好。