在struts中,ActionForm验证方法采用如下格式:
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if((userName == null) || (userName.length() < 1)) {
errors.add("userName",
new ActionError("error.userName.required"));
}
if((password == null) || (password.length() < 1)) {
errors.add("password",
new ActionError("error.password.required"));
} return errors;
}---------------------------------------------------------------------------
在struts中,js验证采用如下格式:
<html:form action="/UserLoginAction" focus="username" onsubmit="return validateLogonForm(this);">
...................
<html:javascript formName="logonForm" dynamicJavascript="true" staticJavascript="false" />
<script language=Javascript1.1 src="staticJavascript.jsp"></script>
.............
其中logonForm在validation.xml中定义:
<form name="logonForm"> <field property="username"
depends="required, minlength,maxlength">
<arg0 key="prompt.username"/>
<arg1 key="${var:minlength}" name="minlength"
resource="false"/>
<arg2 key="${var:maxlength}" name="maxlength"
resource="false"/>
<var>
<var-name>maxlength</var-name>
<var-value>16</var-value>
</var>
<var>
<var-name>minlength</var-name>
<var-value>3</var-value>
</var>
</field> <field property="password"
depends="required, minlength,maxlength"
bundle="alternate">
<arg0 key="prompt.password"/>
<arg1 key="${var:minlength}" name="minlength"
resource="false"/>
<arg2 key="${var:maxlength}" name="maxlength"
resource="false"/>
<var>
<var-name>maxlength</var-name>
<var-value>16</var-value>
</var>
<var>
<var-name>minlength</var-name>
<var-value>3</var-value>
</var>
</field> </form>
对应的js代码在validator-rules.xml中定义:
<validator name="required"
classname="org.apache.struts.validator.FieldChecks"
method="validateRequired"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
msg="errors.required"> <javascript><![CDATA[
function validateRequired(form) {
var isValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oRequired = new required();
for (x in oRequired) {
var field = form[oRequired[x][0]];
if (field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'file' ||
field.type == 'select-one' ||
field.type == 'radio' ||
field.type == 'password') {
var value = '';
// get field's value
if (field.type == "select-one") {
var si = field.selectedIndex;
if (si >= 0) {
value = field.options[si].value;
}
} else {
value = field.value;
}
if (value == '') {
if (i == 0) {
focusField = field;
}
fields[i++] = oRequired[x][1];
isValid = false;
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return isValid;
}]]>
</javascript> </validator>
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if((userName == null) || (userName.length() < 1)) {
errors.add("userName",
new ActionError("error.userName.required"));
}
if((password == null) || (password.length() < 1)) {
errors.add("password",
new ActionError("error.password.required"));
} return errors;
}---------------------------------------------------------------------------
在struts中,js验证采用如下格式:
<html:form action="/UserLoginAction" focus="username" onsubmit="return validateLogonForm(this);">
...................
<html:javascript formName="logonForm" dynamicJavascript="true" staticJavascript="false" />
<script language=Javascript1.1 src="staticJavascript.jsp"></script>
.............
其中logonForm在validation.xml中定义:
<form name="logonForm"> <field property="username"
depends="required, minlength,maxlength">
<arg0 key="prompt.username"/>
<arg1 key="${var:minlength}" name="minlength"
resource="false"/>
<arg2 key="${var:maxlength}" name="maxlength"
resource="false"/>
<var>
<var-name>maxlength</var-name>
<var-value>16</var-value>
</var>
<var>
<var-name>minlength</var-name>
<var-value>3</var-value>
</var>
</field> <field property="password"
depends="required, minlength,maxlength"
bundle="alternate">
<arg0 key="prompt.password"/>
<arg1 key="${var:minlength}" name="minlength"
resource="false"/>
<arg2 key="${var:maxlength}" name="maxlength"
resource="false"/>
<var>
<var-name>maxlength</var-name>
<var-value>16</var-value>
</var>
<var>
<var-name>minlength</var-name>
<var-value>3</var-value>
</var>
</field> </form>
对应的js代码在validator-rules.xml中定义:
<validator name="required"
classname="org.apache.struts.validator.FieldChecks"
method="validateRequired"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
msg="errors.required"> <javascript><![CDATA[
function validateRequired(form) {
var isValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oRequired = new required();
for (x in oRequired) {
var field = form[oRequired[x][0]];
if (field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'file' ||
field.type == 'select-one' ||
field.type == 'radio' ||
field.type == 'password') {
var value = '';
// get field's value
if (field.type == "select-one") {
var si = field.selectedIndex;
if (si >= 0) {
value = field.options[si].value;
}
} else {
value = field.value;
}
if (value == '') {
if (i == 0) {
focusField = field;
}
fields[i++] = oRequired[x][1];
isValid = false;
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return isValid;
}]]>
</javascript> </validator>
解决方案 »
- 求个js将身份证所在户籍划分开成省市县
- Java调用永中Office API的问题
- 救急,我认为是难点,xmlhhtp,请过目
- 请问在javascript中怎样识别一个变量是字符串,而不是一串数字啊,我想做前端验证啊.
- 高分求助 各位大侠,跪谢
- 图片上传 ie10兼容模式下 上传失败,高手来指点下啊
- 为什么在jsp中用select * from biao然后结果集中却报告找不到列!
- 请各位大虾帮忙,我的tomcat装上了但是不能用,内有报错内容(在线等!)
- 服务端如何读取客户端的文件?
- apple程序已被JAVA安全阻止,如何去掉提示,我用的是jdk1.8
- 急!有关application对象的问题,请高手们指教!!
- 请问我的rs里面怎么没有返回值~
再补充点:
1自定义的ActionForm不在继承ActionForm 改为ValidatorForm; 2修改struts_config.xml:添加资源文件 plugin
在<struts-config>和</struts-config>之间添加
<message-resources parameter="resources.application" />
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" property="pathnames" />
</plug-in>
3 将validator-rules.xml,validation.xml拷贝到web-inf下
4 在web-inf/classed/resources/下建立 application.properties文件;