[英]@PathParam as class variable in Jersey
我正在使用Jersey來構建RESTful服務,並且我有一些Servlet在多個方法中使用相同的PathParam。 所以我想將PathParam值存儲在全局變量中,而不是在每個方法中存儲局部變量。
就像是:
@Path("mensas/{mensaID}/dishes/{dishID}")
public class CommentServlet {
//Global PathParams
@PathParam("mensaID")
long mensaID;
@PathParam("dishID")
long dishID;
@GET
@Path("comments")
public String getDishComments() {
// ...
}
}
代替:
@Path("mensas/{mensaID}/dishes/{dishID}")
public class CommentServlet {
@GET
@Path("comments")
//Local PathParams
public String getDishComments(@PathParam("mensaID") long mensaID, @PathParam("dishID") long dishID) {
// ...
}
}
也許還有其他更好的方法?
您可以通過將所有參數提取到一個新類(保留原始@PathParam
注釋)來重構代碼:
public class DishParams {
@PathParam("mensaID")
private long mensaID;
@PathParam("dishID")
private long dishID;
public long getMensaID() {
return mensaID;
}
public void setMensaID(long mensaID) {
this.mensaID = mensaID;
}
public long getDishID() {
return dishID;
}
public void setDishID(long dishID) {
this.dishID = dishID;
}
}
然后使用上述@BeanParam
注釋的類聲明一個參數
public class CommentServlet {
@GET
@Path("comments")
public String getDishComments(@BeanParam DishParams params) {
// ...
return null;
}
}
希望能幫助到你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.