代码之家  ›  专栏  ›  技术社区  ›  Sandeepan Nath

请求dto类中的bigdecimal属性始终映射空值,而不管API请求中传递了什么[closed]

  •  1
  • Sandeepan Nath  · 技术社区  · 6 年前

    对于以下入口点-

    @Path("api/endpoint")
    @POST
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
    @Produces(MediaType.APPLICATION_JSON)
    public CustomerInducedLimitsUpdateResponse customerInducedLimit(@FormParam("type") String type, @FormParam("interval") String interval, @BeanParam LimitsDto dto,
            @Context SecurityContext security) {
    

    DTO类定义-

    public class LimitsDto {
        @FormParam("perTxnLimit") private BigDecimal perTxnLimit;
        @FormParam("value") private BigDecimal value;
        @FormParam("count") private BigDecimal count;
    
        public BigDecimal getPerTxnLimit() {
            return perTxnLimit;
        }
        public void setPerTxnLimit(BigDecimal perTxnLimit) {
            this.perTxnLimit = perTxnLimit;
        }
        public BigDecimal getValue() {
            return value;
        }
        public void setValue(BigDecimal value) {
            this.value = value;
        }
        public BigDecimal getCount() {
            return count;
        }
        public void setCount(BigDecimal count) {
            this.count = count;
        }
    }
    

    对于以下API调用-

    curl -X POST \
      http://127.0.0.1:8084/api/endpoint \
      -H 'Authorization: Bearer <id>' \
      -H 'Content-Type: application/x-www-form-urlencoded' \
      -d 'perTxLimit=100&value=100&count=101&type=load&interval=daily'
    

    检查dto对象的值会将pertxnlimit设置为空-

    enter image description here

    我该怎么解决这个问题?我这里缺什么?

    1 回复  |  直到 6 年前
        1
  •  0
  •   xerx593    6 年前

    可能唯一的问题是:用 perTxLimit 参数,但应为 perTxnLimit 参数。所以,只要一点拼写错误和(我)哈希一些代表:()欢迎!