PROBLEM - The <s:graphicImage> is repeating image when is empty value.
tiagoff Nov 29, 2009 10:00 AMHi, I need a help!
I do not know what is happening, but I created a form to submit 5 images as code below.
<h:form id="uplForm" enctype="multipart/form-data">
<rich:panel>
<table>
<tr>
<td><s:fileUpload data="#{FileUploadService.upload1}" accept="images/*" /></td>
</tr>
<tr>
<td><s:fileUpload data="#{FileUploadService.upload2}" accept="images/*" /></td>
</tr>
<tr>
<td><s:fileUpload data="#{FileUploadService.upload3}" accept="images/*" /></td>
</tr>
<tr>
<td><s:fileUpload data="#{FileUploadService.upload4}" accept="images/*" /></td>
</tr>
<tr>
<td><s:fileUpload data="#{FileUploadService.upload5}" accept="images/*" /></td>
</tr>
<tr>
<td><h:commandButton id="advertisingId" value="Upload" action="#{UploadService.nextScreen}"/></td>
</tr>
</table>
</rich:panel>
</h:form>
When I upload only some images, for example, I select an image to the box 1 and one for the box 3, the box 2 is displaying the image selected in the box 1 and the box 4 and 5 are displaying the image selected in box 3, it's seems that they are using the result of the previous box, when we do not select a image for the box in question.
I already checked the values in the Bean (get and set) and the images are being assigned correctly.
However when I display them in the next Page as code below, it turns out what I described above.
<table>
<tr>
<td>
<s:graphicImage value="#{FileUploadService.upload1}"
style="border: black thin;">
<s:transformImageSize width="125" height="100" />
</s:graphicImage>
</td>
</tr>
<tr>
<td>
<s:graphicImage value="#{FileUploadService.upload2}"
style="border: black thin;">
<s:transformImageSize width="125" height="100" />
</s:graphicImage>
</td>
</tr>
<tr>
<td>
<s:graphicImage value="#{FileUploadService.upload3}"
style="border: black thin;">
<s:transformImageSize width="125" height="100" />
</s:graphicImage>
</td>
</tr>
<tr>
<td>
<s:graphicImage value="#{FileUploadService.upload4}"
style="border: black thin;">
<s:transformImageSize width="125" height="100" />
</s:graphicImage>
</td>
</tr>
<tr>
<td>
<s:graphicImage value="#{FileUploadService.upload5}"
style="border: black thin;">
<s:transformImageSize width="125" height="100" />
</s:graphicImage>
</td>
</tr>
</table>
Of course that I tried put the rendered attribute to
<s:graphicImage
value="#{FileUploadService.upload1}"
rendered="#{not empty FileUploadService.upload1}">
,but the same result.
Below is the code of the bean, which is in conversational scope.
@Name("FileUploadService")
@Scope(ScopeType.CONVERSATION)
public class FileUploadService {
private byte[] upload1;
private byte[] upload2;
private byte[] upload3;
private byte[] upload4;
private byte[] upload5;
public void setUpload1(byte[] bytes) throws FrameworkError {
upload1 = bytes;
}
public void setUpload2(byte[] bytes) throws FrameworkError {
upload2 = bytes;
}
public void setUpload3(byte[] bytes) throws FrameworkError {
upload3 = bytes;
}
public void setUpload4(byte[] bytes) throws FrameworkError {
upload4 = bytes;
}
public void setUpload5(byte[] bytes) throws FrameworkError {
upload5 = bytes;
}
public byte[] getUpload1() {
return upload1;
}
public byte[] getUpload2() {
return upload2;
}
public byte[] getUpload3() {
return upload3;
}
public byte[] getUpload4() {
return upload4;
}
public byte[] getUpload5() {
return upload5;
}
}
Thank you for help