QA@IT

【Java】【struts】JSPに画像を表示したいのですが

8442 PV

お世話になります。

【ソース】
<%@taglib prefix="html" uri="http://struts.apache.org/tags-html" %>
<%@taglib prefix="bean" uri="http://struts.apache.org/tags-bean" %>
<%@taglib prefix="logic" uri="http://struts.apache.org/tags-logic" %>

ー略ー

            <logic:iterate id="item" name="ItemListForm" property="itemList" indexId="index">
                <tr>

                    <html:hidden name="item" property="itemId" disabled="false"/>

                    <td>
                        <html:img page="<bean:write name="item" property="itemPictureFile"/>" />
                    </td>

【エラーコード】
org.apache.jasper.JasperException: /WEB-INF/jsp/aaa/bbb/item_list/item_list_body_main.jsp(44,66) 等号記号が必要です

とすれば表示されるのですが、Beanからファイル名を取得してそれぞれ画像表示させたいです。
エラーを解消して画像を表示させるにはどのように変更したらよいのでしょうか。

よろしくお願いいたします。

回答

<html:img page="<bean:write name="item" property="itemPictureFile"/>" />

このように直接設定する事はできませんので、一旦変数に落とし込んで変数を指定する形にすればいいと思います。

<bean:define id="imageFile" name="item" type="java.lang.String" property="itemPictureFile" />
<html:img page="<%= imgageFile %>" />

struts2 だと<s:set />とか<s:property />を使う様になります。

編集 履歴 (0)
  • ご返信、ありがとうございます。
    <bean:define id="imageFile" name="item" type="java.lang.String" property="itemPictureFile" />
    <html:img page="<%= \"/image/\" + imageFile%>" />
    とすることで解決できました。
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。