如何在html页面和&amp ;;之间实现JaxB Restful WebResource方法?

时间:2012-09-08 17:20:02

标签: java jaxb jersey jax-rs

我在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>

2 个答案:

答案 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)

这是RESTEasy JAX-RS

中或多或少的高级相关能力