来自f:param标记的我的值'image_id'返回null。
JSF SITE
<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");
答案 0 :(得分:3)
<f:param>
必须进入<p:graphicImage>
,但在您的代码中,您已将其放在外面。相应地修复它。
当webbrowser请求图像时,它只会被发送(因此是非null
),而不是在JSF即将生成<img>
元素时。因此,#{main.fileContent}
getter将针对单个图像调用两次:第一次生成HTML时,第二次是webbrowser实际请求图像。