1、struts验证
struts2提供了一套数据验证框架,只需要对每个要验证的数据项提供要验证的配置信息即可。具体写法如下:假设有一个Action类,名字叫xxxAction,要经过这个Action进行业务逻辑处理之前,必须要对从客户端发过来的数据进行有效性验证。用户只需要提供一个名字叫xxx-validation.xml的配置文件,在这个配置文件里对每个要验证的数据项进行配置如:<field name="staff.loginName">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>登录名不能为空!</message>
</field-validator> </field>
只在执行Action的处理方法之前,struts2会根据这个配置文件调用验证框架(其实是一个拦截器)对数据进行验证。(注意:此验证字段只能是与action类对应存在的字段)如果没有通过验证,该拦截器会将错误消息放到错误消息中,在页面可以输出错误消息如:<s:fielderror fieldName="staff.loginName"/>对应输出员工登陆名不符合条件时的错误信息:登录名不能为空!
2、jsp提交表单验证
(1)包括是否选择了操作、输入为空时的验证等。例如:用户必须选择某一操作才能继续执行,JSP页面代码(radio):
<form id="deleteSubForm" action="<s:url action='deleteSubject' namespace='/questiontype'/>" method="get">
<input type="radio" name="delete" id="select1" value="1">删除该学科下的所有试题</input><br><br>
<input type="radio" name="delete" id="select2" value="2">转移到该学科其他题型下</input>
<div class="check" style="display:none;color:red">请选择你要进行的操作!</div>
<button class="button" type="button" >确定</button>
</form>
用javascript/jquery验证用户是否选择了上述的某一操作,
<script type="text/javascript">
$(".button").click(function(){
var item = $(":radio:checked");
var len=item.length;
if(len>0)
{
//用户已做出选择,提交表单
$('#deleteSubForm').submit();
}//未做出选择
else
{ //显示提示信息:请选择你要进行的操作
$('.check').show();
}
});
</script>
(2)验证checkbox时候
<form id="addSubForm" action="<s:url action='deleteSubject' namespace='/questiontype'/>" method="get">
<input type="checkbox" name="questiontype.subject_id" id="subjectid" value="1" >语文</input>
<input type="checkbox" name="questiontype.subject_id" id="subjectid" value="2" >数学</input>
<input type="checkbox" name="questiontype.subject_id" id="subjectid" value="3">英语</input>
<div class="check" style="display:none;color:red">请选择学科!</div>
<button class="button" type="button" >确定</button>
<script type="text/javascript">
$(".button").click(function(){
//判断是否选中复选框
if($('#subjectid').attr('checked')==true)
{
//用户已做出选择,提交表单
$('#addSubForm').submit();
}//未做出选择
else
{ //显示提示信息:请选择学科
$('.check').show();
}
});
</script>
3、Action中可以根据程序的情况验证用户信息重复,验证不符合要求利用:this.addActionError("您输入的题型:<span style='color:red'>"+this.getQuestiontype().getName()+"</span>已经存在"); 在JSP页面加上<s:actionerror escape="false"/>显示错误信息的位置。