Я пытаюсь отобразить поле в форме после 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 имеет RequestScoped и имеет следующие строки кода:
@ManagedBean
public class AddItem extends AbstractBean {
//..
boolean editImgChange=false;
//...
public void ChangeImage(){
this.editImgChange=true;
}
}
Inshort, я хочу отобразить только поле t: inputFileUploadпосле того, как пользователь нажимает на ссылку изменить изображение.Я сохранил флаг editImgChange в bean-компоненте AddItem, начальное значение которого равно false, и как только пользователь щелкает ссылку на изменение изображения, флаг изменяется на true.Программа переходит к методу ChangeImage (), но после этого я получаю ошибку
"malformedXML: Во время обновления: j_idt30: uploadimage not found" *
.
Я буду доволен и совершенно другим решением, чтобы достичь того же результата, если мой дизайн плох.