Struts2验证框架如何工作

时间:2012-05-14 12:28:27

标签: java http struts2 httpclient

我正在为我的项目使用struts2。 现在,我有一个商业信息填写表格,用于获取业务详细信息。 在表格中,我有一些基本的项目,如电子邮件,用户名,密码,确认密码和Facebook推特链接(FB& tweeter链接是可选的,但如果用户输入我想检查它们是否真实) 对于我使用xml文件验证的基本项目:

<validators>
    <field name="companyname">
        <field-validator type="requiredstring">
            <param name="trim">true</param>
            <message>Company name is required.</message>
        </field-validator>
    </field>        
    <field name="fblink">
        <field-validator type="url">
        <message>Please enter a valid url</message>
        </field-validator>
    </field>
    <field name="tweetlink">
        <field-validator type="url">
        <message>Please enter a valid url</message>
        </field-validator>
    </field>
</validators>

&安培;如果用户输入Facebook或twitter url的值,我在Action类的Validate()方法中写入验证,以检查这些是否真实(表示HTTP_STATUS_CODE = 200) as:

    public void validate()
    {
if(getFblink()!=null && !getFblink().isEmpty())
        {
            if(URLValidation.validate(getFblink())== false)
            {
                addFieldError("fblink", getText("Enter valid facebook page link"));
            }
        }       
        if(getTweetlink()!=null && !getTweetlink().isEmpty())
        {
            if(URLValidation.validate(getTweetlink())== false)
            {
                addFieldError("tweetlink", getText("Enter valid tweeter link"));
            }
        }
    }

这里的URLValidation是我的班级&amp;它包含静态方法验证,它采用URL&amp;使用Httpclient库我正在打击&amp;检查其状态代码。 取决于它的返回值,即布尔值,我正在设置错误消息。

它的工作。但我想知道我的方法是否正确? 另外我想使用shor-circcuit验证,以便我如何在xml和&amp; validate()验证码??

1 个答案:

答案 0 :(得分:0)

您想要验证链接并希望使用您的代码(来自验证xml)。这可以通过编写自定义验证器来实现。编写自定义验证器并通过XML文件将其用于您的字段。

例如,您可以看到this tutorial的想法。