A service class has a @GET operation that accepts multiple parameters. These parameters are passed in as query parameters to the @GET service call.
@GET
@Path("find")
@Produces(MediaType.APPLICATION_XML)
public FindResponse find(@QueryParam("prop1") String prop1,
@QueryParam("prop2") String prop2,
@QueryParam("prop3") String prop3,
@QueryParam("prop4") String prop4, ...)
The list of these parameters are growing, so I would like to place them into a single bean that contains all these parameters.
@GET
@Path("find")
@Produces(MediaType.APPLICATION_XML)
public FindResponse find(ParameterBean paramBean)
{
String prop1 = paramBean.getProp1();
String prop2 = paramBean.getProp2();
String prop3 = paramBean.getProp3();
String prop4 = paramBean.getProp4();
}
Somebody said that to use @BeanParam, but it need add @QueryParam for every property in my bean.
So, is there any way I can avoid placing @QueryParam for every property in my bean?
In Struts2 application, if there's a quest URL like this:
http://../queryUser.do?user.name=x&user.address=y
Struts 2 can auto populate parameter bean in Action, the User bean just has setter()/getter().
public String queryUser(User user){
..
..
..
}