后端如何正确接收Long类型的数据,且防止前端随便输入字符串-灵析社区

花影流年

**后端如何正确接收Long类型的数据,且防止前端随便输入字符串** ``` @Data public class CommunityManageV1Req { @ApiModelProperty(value = "业务id", required = true, dataType = "Long", position = 1, example = "1") @NotNull(message = "操作业务id不能为空") private Long businessId; @ApiModelProperty(value = "操作业务类型 1-问题 2-回答 3-评论 4-动态 8-项目(根据类型分别对应业务ID)", required = true, dataType = "Integer", position = 1, example = "1") @NotNull(message = "操作业务类型不能为空") private Integer businessType; @ApiModelProperty(value = "操作类型 0-隐藏 1-展示 2-删除", required = true, dataType = "Integer", position = 1, example = "1") @NotNull(message = "操作状态不能为空") private Integer optStatus; @ApiModelProperty(hidden = true, value = "操作人", required = true, dataType = "String", position = 1, example = "1") private String optUserName; @ApiModelProperty(hidden = true, value = "操作人ID", required = true, dataType = "Long", position = 1, example = "1") private Long optUserId; } ```

阅读量:375

点赞量:14

问AI
在后端接收并验证"Long"类型的数据,同时防止前端随意输入字符串造成类型错误,我们可以使用一套完整的校验机制来确保收到的数据符合预期。 1. 前端输入校验: 在前端,使用JS等技术进行初步校验,确保传递给后端的字段如"businessId"等只包含数字,且符合"Long"类型的限制。这可以通过正则表达式或现成的前端库来实现。 2. 后端注解校验: 后端Java代码中使用Java Bean Validation(例如"javax.validation.constraints"系列中的注解)进行验证,对"Long"类型的数据,特别注意以下几点: - 使用"@NotNull"确保字段不为空。 - 使用自定义注解或者"@Pattern"(配合字符串)来定义允许通过的格式。 3. 请求处理层转换: 确保在Spring或其他MVC框架的控制器中收到参数时,参数能够自动转换为"Long"。Spring Boot等框架通常会自动处理这种类型转换,但可以通过配置或自定义转换器进行控制。 4. 异常处理: 增加异常捕获机制,当输入不符合"Long"类型约束时,抛出特定的异常并返回给前端有意义的错误信息。 示例代码部分: import javax.validation.constraints.NotNull; public class CommunityManageV1Req { @NotNull(message = "操作业务id不能为空") private Long businessId; @NotNull(message = "操作业务类型不能为空") private Integer businessType; @NotNull(message = "操作状态不能为空") private Integer optStatus; private String optUserName; @NotNull(message = "操作人ID不能为空") private Long optUserId; // Getter和Setter省略 } 5. 日志记录: 在后端对每一个请求异常记录日志,以便排查和修正数据校验问题。 通过这几个步骤,我们可以确保后端能够正确接收和验证"Long"类型数据,并有效防止不良或意外输入对系统的影响。