[英]How to deserialize query string to pojo in cxf java
我正在嘗試將querystring轉換為Pojo。 有什么方法可以將查詢字符串轉換為pojo。 以下是到目前為止我嘗試過的操作:
請求:
POST /Service/services/handler/qpStringtoPOJO HTTP/1.1
Host: localhost
Cache-Control: no-cache
id=123434&value=BB$@##@FDBB$#Gw3r3232rvd
Pojo:
package com.nexsols.license.model;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Pojo {
String id;
String value;
@XmlElement(name="id")
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@XmlElement(name="value")
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
@Override
public String toString() {
return "Pojo [id=" + id + ", value=" + value + "]";
}
}
服務方式:
@POST
@Path("/qpStringtoPOJO")
public String qpStringtoPOJO(@QueryParam("") Pojo pojo){
System.out.println(pojo);
return "SUCCESS";
}
當前輸出為Pojo [id = null,value = null]
我正在使用cxf服務,我做錯了嗎? 提前致謝。
鑒於您在以下評論中指出的限制,這是我如何解決此問題的方法:
嘗試這個...
@POST
@Path("/qpStringtoPOJO")
public String qpStringtoPOJO(@Context HttpServletRequest httpRequest){
String id = request.getParameter("id");
String value = request.getParameter("value");
Pojo pojo = new Pojo();
pojo.setId(id):
pojo.setValue(value);
}
或者這個(盡管我還沒有測試過):
@POST
@Path("/qpStringtoPOJO")
public String qpStringtoPOJO(@FormParam("id") String id, @FormParam("value") String value){
Pojo pojo = new Pojo();
pojo.setId(id):
pojo.setValue(value);
}
您也可以使用地圖並從request.getParameterMap()獲取它。 然后,您可以將所需的鍵傳遞到此映射以獲取其值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.