gpt4 book ai didi

java - 使用 JAX-RS 进行表单输入验证

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:36:44 26 4
gpt4 key购买 nike

我想使用 JAX-RS REST 服务作为 Web 应用程序的后端,供人们通过浏览器直接使用。由于人类不时会犯错误,所以我想验证表单输入并在输入错误时重新显示带有验证消息的表单。默认情况下,如果未发送所有值或发送错误值,JAX-RS 会发送 400 或 404 状态代码。

例如,用户在表单字段“count”中输入了“xyz”:

@POST
public void create(@FormParam("count") int count) {
...
}

JAX-RS 无法将“xyz”转换为 int 并返回“400 Bad Request”。

我如何告诉用户他在“计数”字段中输入了非法值?有什么比在任何地方使用字符串并手动执行对话更方便的方法吗?

最佳答案

我建议使用 AOP、JSR-303 和 JAX-RS 异常映射器,例如:

import javax.validation.constraints.Pattern;
@POST
public void create(@FormParam("count") @Pattern("\\d+") String arg) {
int count = Integer.parseInt(arg);
}

然后,定义一个 JAX-RS 异常映射器,它将捕获所有 ValidationException -s 并将用户重定向到正确的位置。

我在 s3auth.com 中使用了类似的东西使用 JAX-RS 进行表单验证:https://github.com/yegor256/s3auth/blob/master/s3auth-rest/src/main/java/com/s3auth/rest/IndexRs.java

关于java - 使用 JAX-RS 进行表单输入验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2833006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com