关于如何使用Struts2框架实现的RESTful接口获取json数据的问题
依照IBM上的教程使用struts2搭建了几个RESTful接口,但是接口只可以接收Form表单数据,使用json数据就返回404。请问要如何获取从前端传来的json数据?
后端代码如下
@Results(@Result(name="success", type="redirectAction", params = {"actionName" , "user"}))
public class UserController extends ActionSupport implements ModelDriven<Object> {
// 封装 id 请求参数的属性
private int id;
private HttpServletRequest httpServletRequest;
private User model = new User();
private List<User> list;
// 定义业务逻辑组件
private UserDao userDao = new UserDao();
//后端代码
/**
* 处理不带id参数的POST请求
* @return
*/
public HttpHeaders create(){
try {
userDao.inst(model);
}catch (Exception e){
System.out.println("File to insert document, may be caused by the existence of wait-inserted username.");
//向前端发送一个json,创建用户失败
}
return new DefaultHttpHeaders("success")
.setLocationId(model.getId());
}
//处理带参数id的post请求
public String update() {
try {
userDao.updateById(id, model);
}catch (HibernateException e){
e.printStackTrace();
System.out.println("File to update document!");
}
return "success";
}
}
前端代码如下(使用Angluar框架,TS编写)
loginCheck(form: NgForm) {
console.log(form);
if (this.valid) {
let request = {
"username": form.value.username,
"password": form.value.password
};
console.log(request);
this.http.post("http://localhost:8088/untitled2_war_exploded/user", request)
.subscribe(
(data : any) =>{
console.log(data.access_token);
this.router.navigateByUrl("user");
},
(error: any) =>{
console.log(error);
this.errortext = error.error.description;
this.presentToast();
}
);
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
跨域访问的问题,已解决