SSM项目遇到的问题(3)

在SSM项目中遇到的问题——无法成功传参的问题

  • 对应的pojo类的属性为int且有属性值为空串

对应的pojo类的属性为int且有属性值为空串

在搭建SSM项目中,与前端交互的过程中,遇到了一个小问题,有一个类的定义如下:(lombok yyds!!)

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private int userId;
    private String userName;
    private String password;
    private String actualName;
    private int departmentId;
    private String userClass;
    private int inScheduling;
}

结果一开始在console看前端回传的数据的时候,后端是完全没有响应的,甚至连一开始进方法都是进不了的,console看一下network发现是500错误,也就是说不是路径错误(苍天啊!!)。
想了小半个小时,mapper对应的内容是这样的

    <select id="queryUser" resultType="com.ssmhis.pojo.User" parameterType="com.ssmhis.pojo.User">
        select * from ssmhis.user
        <where>
            <if test="userId!=0">
                userId=#{userId}
            if>
            <if test="userName!=null">
                and userName like concat('%',#{userName},'%')
            if>
            <if test="departmentId!=0">
                and departmentId=#{departmentId}
            if>
            <if test="userClass!=null">
                and userClass like concat('%',#{userClass},'%')
            if>
        where>

后来发现是controller的形参不能直接写成user,应该用HttpServletRequest去获取对应的参数内容,然后抛去一些空串的错误,构造成对应的user对象(orz),如下(精简了一些没必要的),当然这些值也和前端传过来的参数有关。

 	@ResponseBody
    @RequestMapping("/user/pagelist")
    public Map pageList(int pageSize,  int pageNumber, HttpServletRequest request){
        int userId;
        String userName,userClass;
        if(request.getParameter("userId").length()==0){
            userId=0;
        }else{
            userId = Integer.parseInt(request.getParameter("userId"));
        }
        System.out.println("userId"+userId);
        if(request.getParameter("userName").length()==0){
            userName=null;
        }else{
            userName = request.getParameter("userName");
        }
        System.out.println("username"+userName);
        int departmentId = Integer.parseInt(request.getParameter("departmentId"));
        if("0".equals(request.getParameter("userClass"))){
            userClass = null;
        }else{
            userClass = request.getParameter("userClass");
        }
    }

你可能感兴趣的:(SSM,ssm)