以下是控制器的代码
@RequestMapping(value = "/fetchRecord/", method = RequestMethod.POST)
@ResponseBody
public String fetchRecord(Integer primaryKey)
{
return this.serviceClass.fetchRecord(primaryKey);
}
这是我的角度代码
var dataObj = {
primaryKey : $scope.primaryKey
};
var res = $http.post('/Practice/learn/fetchRecord/', dataObj);
res.success(function(data, status, headers, config) {
$scope.firstname = data;
});
res.error(function(data, status, headers, config) {
alert("failure message: " + JSON.stringify({
data : data
}));
});
我可以调试我的代码。虽然我可以在浏览器中检查它是否传递了primaryKey的值。但在控制器中它仍然是空的。
任何可能的原因?
答案 0 :(得分:0)
你应该发送一个json对象,
试试这个,
<header>
<div>
<img src="imagenes/origen.png">
<nav>
<ul>
<li><a href="#">Inicio</a></li>
<li>/</li>
<li><a href="#">Tienda</a></li>
<li>/</li>
<li><a href="#">Contacto</a></li>
</ul>
</nav>
</div>
<div class = "limpiar"></div>
</header>
答案 1 :(得分:0)
您可以通过两种方式获取Controller
中的值:
第一个选项:
指定具有您要传递的属性的对象。
假设您有RecordEntity
个对象,它有一些属性,其中一个是Integer primaryKey
。注释@RequestBody
将接收值,因此控制器将为:
<强>后端强>
@RequestMapping(value = "/fetchRecord/", method = RequestMethod.POST)
@ResponseBody
public String fetchRecord(@RequestBody RecordEntity recordEntity) {
return "primaryKey from requestBody: " + recordEntity.getPrimaryKey();
}
<强>前端强>
在前端,您应该发送身体中具有json
属性的primaryKey
,例如:
http://localhost:8080/Practice/learn/fetchRecord/
帖子正文:
{
"primaryKey": 123
}
您的控制器将在RecordEntity
对象中收到值。
第二个选项:
按URL传递值,注释@RequestParam
将收到值,因此控制器将为:
<强>后端强>
@RequestMapping(value = "/fetchRecord", method = RequestMethod.POST)
@ResponseBody
public String fetchRecord(@RequestParam Integer primaryKey) {
return "primaryKey from RequestParam: " + primaryKey;
}
<强>前端强>
在网址中,您应该使用?primaryKey
发送值,例如
http://localhost:8080/Practice/learn/fetchRecord?primaryKey=123
您的控制器将收到Integer primaryKey
。