我正在 validate() 方法中进行验证。
public void validate(){
if(continent.equals("-1")){
HttpServletRequest request=ServletActionContext.getRequest();
HttpSession session=request.getSession();
String s=(String)session.getAttribute("operation");
if(s.equals("edit"))
edit();
else if(s.equals("add"))
add();
addFieldError( "Continent", "Continent must be selected");
}
}
并在jsp(view)中添加表单属性validate=true
<s:form action="add" name="aaa" cssClass="yy" method="post" validate="true">
<s:textfield name="Code" label="Code" readonly="false" cssClass="defaultTextBox"/>
<s:textfield name="Name" label="Name" cssClass="defaultTextBox"/>
<s:select name="Continent" label="Continent" headerKey="-1" headerValue="Select" list="continentlist" cssClass="defaultTextBox"/>
<s:textfield name="IndepYear" label="Independance Year" cssClass="defaultTextBox" />
<s:submit value="Save" cssClass="login login-submit" theme="simple"/>
</s:form>
但只有服务器端验证有效。我的问题是 --> 是否无法使用 validate() 方法添加客户端验证?
在 Struts 2 中,客户端验证有不同的含义,完全取决于类型theme您正在使用。
-
With XHTML
(默认)和CSS XHTML
,您可以使用
这完全是客户端,基于 Javascript,并且不与服务器通信。
-
随着AJAX
相反,您可以运行
这将联系服务器,运行整个验证堆栈,并(回答你的问题)运行你的validate()
方法也。
我个人更喜欢使用SIMPLE
主题,完全由我自己处理 HTML、CSS 和 JavaScript。
由于服务器端验证是强制性的,因此客户端验证被认为只是一种剩余,有利于使页面更加用户友好,并减少高用户环境中的网络流量(您阻止不成功 - 但合法 -在通过网络之前请求:)
考虑使用 HTML5 类型并在 jQuery 上进行回退,特别是如果您的目标是移动设备。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)