java - Struts2 验证框架如何工作

标签 java http struts2 httpclient

我正在为我的项目使用 struts2。 现在我有一个用于获取业务详细信息的业务信息填写表。 在表单中,我有一些基本项目,例如电子邮件、用户名、密码、确认密码和 Facebook 推特链接(FB 和推特链接是可选的,但如果用户输入,我想检查它们是否真实) 对于基本项目,我使用 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) 作为:

    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 是我的类,它包含静态方法验证,它采用 URL 并使用我正在点击的 Httpclient 库并检查其状态代码。 根据它的返回值,即 boolean 值,我正在设置错误消息。

它的工作。但我想知道我的做法是否正确? 我还想使用短电路验证,所以我如何在 xml 和 validate() 验证代码中进行通信??

最佳答案

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

例如你可以看到this tutorial一个想法。

关于java - Struts2 验证框架如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10583340/

相关文章:

java - tomcat和resin的区别?

java - 如果用户离开 JSF 中的页面,数据库连接会关闭吗?

java - 多个 Spring 调度方法无法并行工作

java - IllegalArgumentException : Parameter valuefunction. AggregationFunction 与预期类型不匹配 [java.lang.Long (n/a)]

c# - MVC3 REST 路由和 Http 动词

spring - 禁用 Spring Autowiring

c++ - 在 C++ 中从 URL 加载图像

http - GitHub API : How to check for an organization's name availability?

security - Struts2 + 类加载器漏洞 + 如何重现

spring - 为什么我在 tomcat 6 中得到 "HTTP Status 503 - This application is not currently available"?