有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我是Jax-rs的新手。我对将数据从html页面传递到webresource方法持怀疑态度。在html页面中包含FROUTID&;我的名字。如何将这两个属性转换为Java对象,即水果豆。也许我们可以使用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;
    }


}

以及将pararmenter作为水果豆对象传递的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>

共 (2) 个答案

  1. # 1 楼答案

    你的问题我没有答案。但正如我发现的那样,JaxB bean和HTTP请求之间的绑定还没有在Jersey RESTful Web服务中实现——它只有hack(但没有JaxB)

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

  2. # 2 楼答案

    @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)
    });