我正在尝试使用java angular js和mysql创建身份验证方法。我知道如何传递一个参数,但我无法通过两个你能帮助我吗。
这是我的DAO方法:
proc export data=sashelp.class (keep = name
sex
NonExistingVar)
outfile="/stuff/proc_test.csv"
dbms=csv
replace;
run;
这是我的控制器方法,我想通过2个参数:
public Client authentifier(int numerocompte,String mdp) {
System.out.println(numerocompte + mdp);
try {
Connection con = Connexion.getConnection();
PreparedStatement ps = con.prepareStatement("select * from client WHERE numerocompte = ? AND mdp = ?");
ps.setInt(1, numerocompte);
ps.setString(2, mdp);
Client e = new Client();
ResultSet rs = ps.executeQuery();
while (rs.next()) {
e.setIdclient(rs.getInt("idclient"));
e.setNomcomplet(rs.getString("nomcomplet"));
e.setMail(rs.getString("mail"));
e.setNumerocompte(rs.getInt("numerocompte"));
e.setMdp(rs.getString("mdp"));
}
rs.close();
return e;
}catch (Exception e) {
System.out.println("Erreur avec authentifier() -->" + e.getMessage());
return (null);
}
}
这里是角js线,我也将通过2个参数:
@GET
@Path("authentifier/{numerocompte}{mdp}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Client authentifier(@PathParam("numerocompte , mdp") int numerocompte, String mdp) {
ClientDao dao = new ClientDao();
System.out.println(numerocompte);
return dao.authentifier(numerocompte,mdp);
}
答案 0 :(得分:2)
所需的只是控制器方法签名中的附加@PathParam("mdp")
注释。
@GET
@Path("authentifier/{numerocompte}/{mdp}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Client authentifier(@PathParam("numerocompte") int numerocompte,
@PathParam("mdp") String mdp) {
ClientDao dao = new ClientDao();
System.out.println(numerocompte);
return dao.authentifier(numerocompte,mdp);
}
此外,请确保您指定路径。在您的示例中,您声明了
@Path("authentifier/{numerocompte}{mdp}")
JAX-RS将无法知道numerocompte
的开始位置和结束位置。像这样将它们彼此分开
@Path("authentifier/{numerocompte}/{mdp}")
然后
$http.get('rest/client/authentifier/'+$scope.nouveauClient.numerocompte+'/'+$scope.nouveauClient.mdp).then(function(data){
alert(data.data);
})
答案 1 :(得分:2)
为每个方法参数
添加@PathParam("pathParamName")
public Client authentifier(
@PathParam("numerocompte") int numerocompte,
@PathParam("mdp") String mdp
)
并确保遵循指定的路径。
答案 2 :(得分:1)
您忘记将numerocompte
和mdp
之间的斜杠放在@Path
注释中。
您的authentifier
功能应如下所示
@GET
@Path("authentifier/{numerocompte}/{mdp}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Client authentifier(@PathParam("numerocompte") int numerocompte, @PathParam("mdp") String mdp) {
...
}
在Angular代码中也是如此
$http.get('rest/client/authentifier/'+$scope.nouveauClient.numerocompte+'/'+$scope.nouveauClient.mdp).then(function(data) { alert(data.data); })