我在Jax-rs中的新功能。我怀疑将数据从html页面传递到webresource方法。在html页面中包含fruitid& fruitname。如何将这两个属性转换为Java对象,即FruitBean。也许我们可以使用jaxb实现。但我不知道在html page和amp;之间实现的进一步步骤。网络资源方法。
请查看以下有关fruitbean的代码段
@XmlRootElement(name="fruitbean")
public class FruitBean {
private long id;
private String name;
@XmlAttribute
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
@XmlAttribute
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Web资源方法将pararmenter作为FruitBean对象传递。检查以下方法。
@POST
@Path("loadObject1")
@Consumes(MediaType.APPLICATION_XML)
public void loadObject1(FruitBean bean){
System.out.println("Fruit ID" + bean.getId() + " Name" + bean.getName());
}
即使我已经尝试过搜索这个问题。但我无法理解。请帮助我。
更新: -
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Test Jax-RS Object</title>
</head>
<body>
<form action="services/fruitstore/loadObject1" method="POST" enctype="application/x-www-form-urlencoded">
<table>
<tr>
<td>ID:</td>
<td><input type="text" name="id"></td>
</tr>
<tr>
<td>Name:</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td><input type="submit" Value="Submit"></td>
</tr>
</table>
</form>
</body>
</html>
答案 0 :(得分:0)
@POST
@Path("loadObject1")
@Consumes(MediaType.APPLICATION_JSON)
public void loadObject1(String bean){
FruitBean bean = new com.google.gson.Gson().fromJson(bean, FruitBean.class);
System.out.println("Fruit ID" + bean.getId() + " Name" + bean.getName());
}
来自服务器的发送带有数据JSON.stringify(fruitBean)
的POST请求
例如,使用jQuery / ajax发送请求
var fruitBean
fruitBean.id = 1
fruitBean.name = 'name'
$.ajax({
type: 'POST',
url: 'context-path/loadObject1',
data : JSON.stringify(fruitBean)
});
答案 1 :(得分:0)
我对你的问题没有答案。但是我发现在Jersey RESTful Web服务中还没有实现JaxB bean和HTTP-request之间的绑定 - 它只有一个人hack(但没有JaxB)
中或多或少的高级相关能力