在 RESTEasy 中排除 @BadgerFish 中的属性

发布于 2024-12-07 01:49:42 字数 1183 浏览 1 评论 0原文

我将制作一个 RESTful 的 Web 应用程序。我正在使用 RESTEasy API 来实现这一点。我正在使用 @BadgerFish 注释在 POST 请求中与 POJO 进行映射。但我有一些属性不允许进入参数。所以我的问题是如何排除这些属性或如何防止 @BadgerFish 设置参数中的这些值?

例如:

我的数据库信息:
表名称:用户
字段:name->String、loginCoung->int

我的 POJO:

@BadgerFish
public class POJO{
private Stirng name;
private int loginCount = 0;


public String getName() {
        return name;
    }
public void setName(String nm) {
        this.name= nm;
    }
public int getLoginCount() {
        return loginCount;
    }
public void setLoginCount(int loginCount) {
        this.loginCount = loginCount;
    }   
}

我的 RESTFul 代码:

    @POST
    @Path("/user")
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)
    public Response postUser(@BadgerFish POJO p) {      

        System.out.println("post req.....");
        return Response.status(200).entity("sucess"+p.getLoginCount()).build(); 
    }

JSON 数据来自 POST 请求:
情况1:如果JSON是-> {“名称”:“abc”} 响应将为 0(按预期工作)
情况2:如果JSON是-> {“名称”:“abc”,“loginCount”:“12”}。它不应该在 POJO 对象中设置 loginCount 的值。且响应应为 0。

I am going to make one WebApplication which is RESTful. I am using RESTEasy API for that. I am using @BadgerFish annotation for mapping with POJO in POST request. But I have some attributes which should not allow to come in parameter. So my problem is how can i exclude those attributes or how to prevent @BadgerFish to set those values come in parameter?

For instance:

My DataBase info:
Table Name: user
Fields : name->String, loginCoung->int

My POJO:

@BadgerFish
public class POJO{
private Stirng name;
private int loginCount = 0;


public String getName() {
        return name;
    }
public void setName(String nm) {
        this.name= nm;
    }
public int getLoginCount() {
        return loginCount;
    }
public void setLoginCount(int loginCount) {
        this.loginCount = loginCount;
    }   
}

My RESTFul code:

    @POST
    @Path("/user")
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)
    public Response postUser(@BadgerFish POJO p) {      

        System.out.println("post req.....");
        return Response.status(200).entity("sucess"+p.getLoginCount()).build(); 
    }

JSON Data comes in POST Request:
Case 1: if JSON is -> {"name":"abc"}
Response will be 0 (Works as expected)
Case 2: if JSON is -> {"name":"abc","loginCount":"12"}. It should not set the value of loginCount in POJO obj. and Response should be 0.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

东京女 2024-12-14 01:49:42

重写“setLoginCount()”来执行所需的任何操作(例如设置辅助标志等)怎么样?

How about just overriding 'setLoginCount()' to take whatever action is needed (like setting a secondary flag or such)?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文