我正在嘗試通過GET請求將單個參數傳遞給服務器。我可以在瀏覽器中看到GET帶有“已加載”參數的請求正確并成功發送。問題是在服務器端沒有成功轉換成對象。請求失敗,因為參數中的對象為空,因此引發異常。該應用程序是一個我計劃使其可動態加載的表。當您到達站點的末尾時,接下來的 25 個條目應該加載一個GET請求,以及已經加載了多少條目的計數作為參數。服務器端import java.util.ArrayList;import java.util.List;import javax.ws.rs.Consumes;import javax.ws.rs.GET;import javax.ws.rs.POST;import javax.ws.rs.PUT;import javax.ws.rs.Path;import javax.ws.rs.Produces;import javax.ws.rs.core.MediaType;@Path("/hello")public class Hello {TableUtils tu = new TableUtils();@GET@Consumes(MediaType.APPLICATION_JSON)@Produces(MediaType.APPLICATION_JSON)public List<Eintrag> fetchEntries(String loaded) { List<KeyEntry> entries = tu.getEntries(); Integer entriesLoaded = Integer.parseInt(loaded); if(entries.size() > (entriesLoaded+25)) { entries = entries.subList(entriesLoaded, entriesLoaded + 25); } else if(entries.size() == (entriesLoaded+25)){ entries.clear(); } else { entries = entries.subList(entriesLoaded, entries.size()); } return convert(entries);}@PUT@Consumes(MediaType.APPLICATION_JSON)@Produces(MediaType.APPLICATION_JSON)public String add(final Eintrag input) { if(input.getlKey()!= "" && input.getOs() != "" && tu.addEntry(input.getOs(), input.getlKey())) return "success"; else return "error";}private List<Eintrag> convert(List<KeyEntry> entries) { List<Eintrag> eintraege = new ArrayList<Eintrag>(); for (KeyEntry entry : entries) { Eintrag eintrag = new Eintrag(); eintrag.setId(entry.getId()); eintrag.setOs(entry.getOs()); eintrag.setlKey(entry.getlKey()); eintraege.add(eintrag); } return eintraege;}}控制器angular.module("keyDB", []).controller("Entries", function($scope, $http){$http.get("http://localhost:8080/keyDBmaven/rest/hello",{params : {loaded : "0"}}).then(function(response){ $scope.keys = response.data;});});這也始終為空。我在這個問題上坐了很長時間,所以非常感謝解決方案。
1 回答
郎朗坤
TA貢獻1921條經驗 獲得超9個贊
您的“加載”參數是查詢參數,要從帶有 Jax-Rs 實現的請求中獲取它,您需要使用 @QueryParam("param_name") 注釋。所以你的電話應該看起來像
@GET
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public List<Eintrag> fetchEntries(@QueryParam("loaded") String loaded) {
...
}
添加回答
舉報
0/150
提交
取消
