Java AngularJS-如何使用$http.post将多个参数传递给服务器类
我不熟悉AngularJS和web服务。 我正在做一个程序,从用户->[姓名和年龄]获取值,并将这些值插入oracle数据库。我只能插入一个值。我使用$http.post传递多个值的搜索结果不是很好。 如果有人能帮忙,那就太有帮助了。 这是密码 客户端代码Java AngularJS-如何使用$http.post将多个参数传递给服务器类,java,angularjs,web-services,Java,Angularjs,Web Services,我不熟悉AngularJS和web服务。 我正在做一个程序,从用户->[姓名和年龄]获取值,并将这些值插入oracle数据库。我只能插入一个值。我使用$http.post传递多个值的搜索结果不是很好。 如果有人能帮忙,那就太有帮助了。 这是密码 客户端代码 <html> <title>My AngularJS App</title> <body ng-app="myApp" ng-controller="DBCtrl"> <scrip
<html>
<title>My AngularJS App</title>
<body ng-app="myApp" ng-controller="DBCtrl">
<script type ="text/javascript" src="https://ajax.googleapis.co/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<form ng-submit="insertData()">
Student name: <input type = "text" ng-model="name" >
Student age: <input type= "text" ng-model="age">
<br>
<input type ="submit" value="INSERT">
</form>
<p>{{msg}}</p>
<script>
var app = angular.module('myApp',[]);
app.controller('DBCtrl', function($scope,$http){
$scope.insertData = function(){
alert($scope.name);
$http.post('rest/DB/add',$scope.name)
//$http.get("rest/DB/extract")
.success(function(){
$scope.msg="DATA INSERTED";
})
}
});
</script>
</body>
</html>
package com.ustri.DBman;
@Path("/DB")
public class DBManager {
@POST
@Path("/add")
@Produces(MediaType.TEXT_HTML)
public void addDetails(String sname,String sage){
System.out.println("IN add");
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","hr","hr");
//step3 create the statement object
System.out.println("Connection established successfully");
PreparedStatement stmt=con.prepareStatement("insert into studreg values(?,?)");
System.out.println(sname+"+"+sage);
stmt.setString(1,sname);
stmt.setString(2,sage);
int i=stmt.executeUpdate();
System.out.println(i+" records inserted");
con.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
使用此代码,我只能插入单个值$scope.name。
如何修改代码以通过$http.post将$scope.name和$scope.age参数传递给服务器
使用此代码,我只能插入单个值$scope.name。
如何修改代码以同时传递$scope.name和$scope.age
参数通过$http.post发送到服务器
默认情况下,$http
post/get方法通过将数据序列化为JSON并使用“application/JSON”
内容类型发布来转换请求。
虽然您似乎希望使用
应用程序/x-www-form-urlencoded”
内容类型发布数据。您可以指定
“application/x-www-form-urlencoded”
内容类型,并在发送数据之前创建格式良好的数据(在传输值之间添加和分隔符)
或者你可以做得更简单。
您可以发送包含这两个信息的JS对象
替换
$http.post('rest/DB/add',$scope.name);
借
并根据需要更改rest控制器
替换
public void addDetails(String sname,String sage){
借
其中,Details
将两个传输值作为字段
public class Details{
private String name;
private String age;
// and add getters and setters if required by your JSON/Java mapper.
}
角度应用程序通常发送JSON,并接收JSON。当然,您可以发送其他内容,也可以接收HTML,但这使它变得非常困难。为什么不发送和接收JSON?@JBNizet是的。。。这是所有必要的。。。
public void addDetails(Details details){
public class Details{
private String name;
private String age;
// and add getters and setters if required by your JSON/Java mapper.
}