Struts2中的URL Validator检查一个给定的字段中的字符串是否为有效的URL.如果输入的值不是有效的URL,它将产生错误信息.
错误信息由<message> </message>标签提供.下面的例子演示了如何使用URL validator.
按照下面的步骤创建URL validator示例 :
第一步 : 创建struts.xml并向其中添加下面的xml片段
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- Rose India Struts 2 Tutorials -->
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="roseindia" namespace="/roseindia" extends="struts-default">
<!-- Add actions here -->
<!-- Url validation -->
<action name="urlValidation">
<result>/pages/urlInputForm.jsp</result>
</action>
<action name="urlValidation1" class="net.roseindia.urlVaLidationAction">
<result name="input">/pages/urlInputForm.jsp</result>
<result name="error">/pages/urlInputForm.jsp</result>
<result>/pages/urlSuccess.jsp</result>
</action>
<!-- Add actions here -->
</package>
<!-- Add packages here -->
</struts>
创建一个jsp输入表单 : urlInputForm.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Url input form</title> <link href="<s:url value="/css/main.css"/>" rel="stylesheet" type="text/css"/> <s:head/> </head> <body> <s:form method="POST" action="urlValidation1"> </td> </tr> <s:textfield label="Enter Url" name="url" /> <s:submit /> </s:form> </body> </html>
第三步 : 创建一个Action类 :
urlVaLidationAction.java
package net.roseindia; import com.opensymphony.xwork2.ActionSupport; public class urlVaLidationAction extends ActionSupport { private String url; public void setUrl(String url){ this.url = url; } public String getUrl(){ return url; } }
第四步 : 按照下面的方法创建一个URL validator
验证文件的格式是<ActionClassName>-validation.xml或<ActionClassName>-<ActionAliasName>-validation.xml.
URL validator : 该字段验证器检查给定的字段是否包含一个URL.如果输入正确,你将获得urlSuccess.jsp页面.否则将显示xml中指定的信息(如: Please enter a valid URL.)
URL validator包含如下参数 :
l fieldName : 涉及URL validator检查的字段名.如果使用Plain-Validator语法将是必填项.
urlVaLidationAction-validation.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="url">
<field-validator type="url">
<message>Please enter a valid url</message>
</field-validator>
</field>
</validators>
当输入正确的URL的时候,用户得到urlSuccess.jsp页面并显示输入的URL
urlSuccess.jsp
<%@page language="java" %> <html> <head> <title>Correct entry</title> </head> <body> <b>URL = </b><%=request.getParameter("url") %>! </body> </html>
输出 :
当该程序最初执行时,用户得到如下 :
如果用户输入错误的URL,他将得到 :
同样,如果用户输入这样的错误的URL,他将得到 :
如果用户输入有效的URL :
那么他将获得如下的成功的信息 :