我正在使用spring boot rest api,我想将信息从rest api获取到html页面。我尝试使用jquery进行此操作,但无法获取数据。
这是我的休息控制器
package tr.kasim.Controller;
import java.sql.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import tr.kasim.Service.PersonelService;
import tr.kasim.Service.PtsGirisCikisService;
import tr.kasim.Model.Personel;
import tr.kasim.Model.PtsGiriscikis;
@CrossOrigin("*")
@RestController
public class STRestController {
@Autowired
public PersonelService personelService;
@Autowired
public PtsGirisCikisService ptsGirisCikisService;
@GetMapping("/api/personels")
public ResponseEntity<List<Personel>> getPersonels(){
List<Personel> personels = personelService.findAll();
return ResponseEntity.ok().body(personels);
}
@GetMapping("/api/giriscikis")
public ResponseEntity<List<PtsGiriscikis>> getGirisCikis(){
List<PtsGiriscikis> giriscikis = ptsGirisCikisService.findAll();
return ResponseEntity.ok().body(giriscikis);
}
//@GetMapping("/api/personel")
@RequestMapping(method=RequestMethod.GET, value="/api/personel", produces="application/json" )
public ResponseEntity<List<PtsGiriscikis>> getPersonelByKartNoAndİseGiris(@RequestParam("kartno") String KartNo , @RequestParam("tarih") Date IseGirisTarihi){
String errorMessage="Aranilan Personel Bulunamadi!";
Personel personel = personelService.findPersonelByKartnoAndIsegiristarihi(KartNo , IseGirisTarihi);
if(!personel.equals(null)) {
List<PtsGiriscikis> girisCikis = ptsGirisCikisService.findByPersonelid(personel.getId());
return ResponseEntity.ok().body(girisCikis);
}
return null;
}
}
这是我的控制人
package tr.kasim.Controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class STController {
@GetMapping("/")
public String goHome() {
return "templates/index";
}
}
这是index.html页面
<!DOCTYPE html>
<html>
<head>
<title>Hello jQuery</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
function findPersonels() {
$.ajax({
type:"GET",
url: "/api/personels",
contentType: "application/json"
}).then(function(data) {
$('.giriscikis-id').append(data.id);
$('.giriscikis-ad').append(data.ad);
});
}
</script>
</head>
<body>
<div>
<p class="giriscikis-id">The ID is </p>
<p class="giriscikis-ad">The name is </p>
<input type="button" id="doldur" name="doldur" value="field doldur" onclick="findPersonels();">
</div>
</body>
我尝试了许多jquery + spring应用程序示例,但仍然一无所获。当我尝试访问index.html时,只看到了我的html著作,其余服务信息却未显示。请纠正我,谢谢。
答案 0 :(得分:1)
信息有限:
我猜您从路径到模板的映射是错误的。不是这样吗?
@GetMapping(“ /”) 公共字符串goHome(){ 返回“模板/索引”; }
一个Uncaught ReferenceError
表示找不到您的方法。请验证拼写(在您的示例中看起来不错,请在代码中再次检查)。在您的示例中,findPersonels的括号完全被弄乱了。 )
太多。如果此问题得到纠正,请在浏览器控制台中检查是否在加载页面时没有http404
(以便找到js/personels.js
)。
/api/personels
将列表定义为返回类型,但是您的脚本使用属性data.ad
和data.id
,它们看起来并不像他们期望的那样。返回的json可能看起来像这样{ items: [ { 'ad': 'first personel' 'id': '1' }, { 'ad': 'second personel' 'id': '2' } ] }
,其结构取决于您的JSON编组器。所以访问的正确语法
您在JS中的对象就像data.items[0].id
一样。