1

af:param 标记中的我的值“image_id”返回 null。

JSF网站

    <p:dataGrid value="#{main.game.cards}" var="cad" columns="3"
                            rows="12" paginator="true"
                            paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                            rowsPerPageTemplate="5,10,25, 50, 100"> 
                            <p:panel header="Nr. #{cad.id}">
                                    <f:param name="image_id" id="image_id" value="#{cad.id}"></f:param>
                                <p:graphicImage cache="true" value="#{main.fileContent}">

                                </p:graphicImage>    

                            </p:panel>
                        </p:dataGrid>  

</h:form>

尝试读取值:

ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
    String photoId = externalContext.getRequestParameterMap().get("image_id");
4

1 回答 1

3

<f:param>必须进入内部,但在您的<p:graphicImage>代码中,您已将其放在外部。相应地修复它。

顺便说一句,它只会null在网络浏览器请求图像时发送(因此是非 ),而不是在 JSF 即将生成<img>元素时发送。因此,#{main.fileContent}对于单个图像,getter 将被调用两次:第一次是生成 HTML 时,第二次是 web 浏览器实际请求图像时。

也可以看看:

于 2012-08-03T14:22:22.273 回答