Dijit控件的Spring表单字段错误
我有一个使用spring表单控件的简单表单。我还在控件上使用dojoType 例如:Dijit控件的Spring表单字段错误,spring,dojo,Spring,Dojo,我有一个使用spring表单控件的简单表单。我还在控件上使用dojoType 例如: 我正在用dojo进行表单验证。我还使用spring添加了一些服务器端验证。我试图使用springs验证来更新我的dijit字段,以突出显示错误。这就是我想到的。这感觉像一个黑客,我想知道是否有人有更好的解决方案 首先,在表单的最底部有一个隐藏的span元素,它列出了从spring:hasBindErrors返回的所有错误,如下所示: <span id="allErrors" style="visibili
我正在用dojo进行表单验证。我还使用spring添加了一些服务器端验证。我试图使用springs验证来更新我的dijit字段,以突出显示错误。这就是我想到的。这感觉像一个黑客,我想知道是否有人有更好的解决方案
首先,在表单的最底部有一个隐藏的span元素,它列出了从spring:hasBindErrors返回的所有错误,如下所示:
<span id="allErrors" style="visibility:hidden">
<spring:hasBindErrors name="myForm">
<c:forEach var="error" items="${errors.allErrors}">
${error.field}
</c:forEach>
</spring:hasBindErrors>
</span>
(我之所以要进行替换,是因为spring生成的id属性没有括号,但保留在name属性上。此外,错误由name而不是id引用。)
这很好,但我只是想知道是否有其他人遇到过类似的解决方案,或者是否有更简单的方法来做同样的事情
谢谢
dojo.addOnLoad(displayErrors);
function displayErrors() {
dojo.forEach(dojo.trim(dojo.byId("allErrors").innerHTML).split(" "), function(value) {
var newVal = value.replace(/[\[\]]/g, '');
if (dojo.byId(newVal+'.errors') != 'undefined') {
dijit.byId(newVal).state = "Error";
dijit.byId(newVal)._setStateClass();
}
});
}