0

我是 Jax-rs 的新手。我怀疑将数据从 html 页面传递到 webresource 方法。在 html 页面中包含 fruitid 和fruitname。如何将这两个属性转换为 Java 对象,即 FruitBean。也许我们可以使用 jaxb 实现.但我不知道在html页面和网络资源方法之间实现的进一步步骤。

请检查以下代码片段以获取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;
    }


}

并将参数作为 FruitBean 对象传递的 Web 资源方法。检查以下方法。

@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>
4

2 回答 2

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());

}  

从服务器发送带有数据的 POST 请求,JSON.stringify(fruitBean)
例如使用 jQuery/ajax 发送请求

var fruitBean  
fruitBean.id = 1  
fruitBean.name = 'name' 
$.ajax({  
  type: 'POST',
  url: 'context-path/loadObject1',  
  data : JSON.stringify(fruitBean)
});
于 2012-09-08T22:17:27.190 回答
0

你的问题我没有答案。但正如我发现 JaxB bean 和 HTTP 请求之间的绑定尚未在 Jersey RESTful Web 服务中实现 - 它只是有人破解(但没有 JaxB)

这或多或少是RESTEasy JAX-RS中的高级相关能力

于 2013-02-27T20:08:35.167 回答