我一直在尝试在Struts2中使用字段验证框架并实现它。问题是当使用jquery标签进行AJAX调用时,当我想用fielderror重新加载同一页面时,它会以结果div为目标。
<div class="myform">
<s:form id="userForm" action="users" theme="simple">
<h1>Search for Users</h1>
<p><s:fielderror /></p>
<label>Username
<span class="small">Add your name</span>
</label>
<s:textfield id="username" name="username"/>
<label>Point Minimum
<span class="small">Min. 0 points</span>
</label>
<s:textfield name="pointMin"/>
<label>Point Maximum
<span class="small">Max. 5000 points</span>
</label>
<s:textfield name="pointMax"/>
<label>Rate Minimum
<span class="small">Percentage</span>
</label>
<s:textfield id="rateMin" name="rateMin"/>
<label>Rate Maximum
<span class="small">Percentage</span>
</label>
<s:textfield id="rateMax" name="rateMax"/>
<s:hidden name="searchButtonHit" value="%{true}"/>
<sj:a formIds="userForm"
targets="listingDisplay"
button="true"
validate="only"
type="submit"> Search
</sj:a>
<div class="spacer"></div>
</s:form>
</div>
<div class="spacer"></div>
<div id="listingDisplay"></div>
<sj:a>
标记定位listingDisplay
div,因此fielderror
以及相同的表单会加载到下面,这看起来很奇怪。有没有更好的方法呢?谢谢!
答案 0 :(得分:0)
查看以下验证链接。它在错误消息中添加了一个字符串错误,并在响应后检查它。您也可以这样重新加载页面,重载代码可以用onSuccessTopics编写。
方法2
非常简单但可能无法在所有浏览器上运行。 设置
的目标属性 <sj:a targets="myform">
到同一个div,表单存在于其中。