我正在为我的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页面中更新。 Thanx任何有用的回复!
答案 0 :(得分:0)
使用执行和渲染标记
尝试以下代码<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>
答案 1 :(得分:-1)
您需要使用更新属性。
看看 -
<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>
希望这会起作用