我正在为我的jsf项目编写验证码。我几乎做了所有的事情,但问题是图像的刷新。我想用ajax来做,这样当我点击图像时,它就会被新的替换。但当我点击它时,图像没有更新。但它会在重新加载页面后更新。
<h:form>
<h:commandLink>
<h:graphicImage value="/captcha/test.png"
style="width:35mm;height:2cm;" />
<f:ajax render="@all" listener="#{captcha.recaptcha()}"></f:ajax>
</h:commandLink>
</h:form>
每次我点击图像时,它在磁盘上被更改,但在html页面中没有更新。谢谢你的回复!
尝试使用以下代码执行和呈现标记
<h:form>
<h:commandLink>
<h:graphicImage value="/captcha/test.png" style="width:35mm;height:2cm;" />
<f:ajax render="@form" execute="@form" listener="#{captcha.recaptcha()}" />
</h:commandLink>
</h:form>
您需要使用update属性。
看一看-
<h:form id="form1">
<h:commandLink>
<h:graphicImage value="/captcha/test.png"
style="width:35mm;height:2cm;" id="img1"/>
<f:ajax render="@all" listener="#{captcha.recaptcha()}" update=":form1:img1"></f:ajax>
</h:commandLink>
</h:form>
希望能成功