关于如何使用Struts2框架实现的RESTful接口获取json数据的问题

Aitar
  • 1
新手上路,请多包涵

依照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();
          }
      );
    }
  }
回复
阅读 1.8k
1 个回答
Aitar
  • 1
新手上路,请多包涵

跨域访问的问题,已解决

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏