如何通过Validation API验证某些输入参数?

时间:2015-02-15 01:02:33

标签: java validation apache-commons

我有一个API,我在其中对某些输入参数进行自己的验证。例如 -

    public Builder(int clientId) {
        TestUtils.assertNonNegative(clientId, "ClientId");
        this.clientId = clientId;
    }

    public Builder setUserId(String userid) {
        TestUtils.assertNotNull(userid, "UserId");
        this.userid = userid;
        return this;
    }

assertNonNegative课程中的assertNotNullTestUtils方法就像这样 -

public static void assertNonNegative(int val, String attr) {
    if (val <= 0) {
        s_logger.logError("Attribute = ", attr, " Value = ", val, " error=", attr, " cannot be negative or zero");
        throw new IllegalArgumentException(attr + " cannot be negative or zero");
    }
}

public static void assertNotNull(String value, String key) {
    if (value == null || value.isEmpty()) {
        s_logger.logError("Key = ", key, " Value = ", value, " error=", key,
                " cannot be NULL or empty String");
        throw new IllegalArgumentException(key + " cannot be null OR empty");
    }
}

我想知道在任何开源项目中是否有可用的验证API,我可以用它代替上面的内部方法?如果是的话,任何人都可以举例说明我将如何实现这一目标?我仍然需要将相同的消息作为IllegalArgumentException

返回

1 个答案:

答案 0 :(得分:0)

我不明白为什么你会使用外部API tu实现nullOrEmpty或非负数验证但是......

如果您想直接在Java应用程序中验证数据库中用户的ID

您可能会对此感兴趣: http://www.mkyong.com/java/how-to-send-http-request-getpost-in-java/

使用一点PHP并验证用户是否在数据库中。

if(isset($_GET['idcmd']))
{
    switch($_GET['idcmd'])
    {
        case 1:
                if(isset($_POST['iduser']))
                {
                    $sql= "SELECT idUser FROM users WHERE idUser=:iduser ";
                    $result = $db_conn->prepare($sql);
                    $result->bindParam(":iduser" ,$_POST['iduser']);
                    $result->execute();

                    $num=$result->fetchColumn();
                    if($num > 0){
                        echo "cool";
                    }else{
                        echo "nocool";
                    }
                }
        break;
    }
}

现在,如果您对网址www.mydomain.com/myapi.php?idcmd=1发出POST请求并获得很酷的响应,则表示该用户位于数据库中。

我希望它有所帮助。