请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

login.do测试,500 空指针异常,参数没传过来??

获取不到参数,参数没传过来,什么问题??

难道 Restlet client 这个插件需要什么配置,才能传参成功的吗?

https://img1.sycdn.imooc.com/szimg//59954db300014e1714990661.jpg

https://img1.sycdn.imooc.com/szimg//59954db300019c5f15540701.jpg

UserController.java

package com.mall.controller.protal;

import com.mall.common.Const;
import com.mall.common.ResponseCode;
import com.mall.common.ServerResponse;
import com.mall.pojo.User;
import com.mall.service.IUserService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpSession;

@Controller
@RequestMapping("/user/")
public class UserController {
    private IUserService iUserService;

    /**
     * 用户登录
     * @param username
     * @param password
     * @param session
     * @return
     * 如果登录成功存进session里面
     */
    @RequestMapping(value="login.do", method = RequestMethod.POST)
    @ResponseBody
    public ServerResponse<User> login(String username,String password, HttpSession session){
        ServerResponse<User> response = iUserService.login(username, password);
        System.out.println("------Controller返回username=---------"+username);
        if(response.isSuccess()){
            session.setAttribute(Const.CURRENT_USER,response.getData());
        }
        return response;
    }

    /**
     * 退出登录
     * @param session
     * @return
     */
    @RequestMapping(value="logout.do", method = RequestMethod.POST)
    @ResponseBody
    public ServerResponse<User> logout(HttpSession session){
        session.removeAttribute(Const.CURRENT_USER);
        return ServerResponse.createBySuccess();
    }

    /**
     * 用户注册
     * @param user
     * @return
     */
    @RequestMapping(value="register.do", method = RequestMethod.POST)
    @ResponseBody
    public ServerResponse<String> register(User user){
        return iUserService.register(user);
    }
    //校验用户名和email是否存在
    @RequestMapping(value="check_valid.do", method = RequestMethod.POST)
    @ResponseBody
    public ServerResponse<String> checkValid(String str , String type){
        return iUserService.checkValid(str,type);
    }

    //获取用户登录信息
    @RequestMapping(value="get_user_info.do", method = RequestMethod.POST)
    @ResponseBody
    public ServerResponse<User> getUserInfo(HttpSession session){
        User user = (User) session.getAttribute(Const.CURRENT_USER);
        if(user != null){
            return ServerResponse.createBySuccess(user);
        }
        return ServerResponse.createByErrorMessage("用户未登录,无法获取用户信息!");
    }


}


正在回答 回答被采纳积分+3

2回答

Endrong 2017-08-18 00:42:59

iUserService 加上注解 自动赋值 再试试 空指针的原因大概就是iUserService并没有赋值的原因


0 回复 有任何疑惑可以回复我~
  • Endrong #1
    另外在对应的service层 加上Service的注解 value写iUserService
    回复 有任何疑惑可以回复我~ 2017-08-18 00:43:49
Endrong 2017-08-17 16:35:57

你可以试一下 post请求的时候 参数设置改成这样

https://img1.sycdn.imooc.com/szimg//5995554700018ef613180535.jpg

然后建议你把UserController的代码贴出来

0 回复 有任何疑惑可以回复我~
  • 提问者 筱爻 #1
    嗯 ,  参数设置已经改过来了,
    测试还是获取不了参数,不管是测试登录还是注册,都报500 的空指针异常。
    回复 有任何疑惑可以回复我~ 2017-08-17 17:08:27
  • 提问者 筱爻 #2
    嗯 参数设置改过来了,测试登录和注册的时候还是都显示空指针异常。
    回复 有任何疑惑可以回复我~ 2017-08-17 18:05:10
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信