org.springframework.web.util.NestedServletException:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘name’ not found. Available parameters are [arg1, arg0, param1, param2]
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:986)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:870)
javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:855)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
解决方案
使用Mybatis时出现了这个问题
mapper.xml的select语句,因为这里要传递两个参数,就可能导致上述错误,即name没有获得值
<select id="findUserByNameAndPwd" resultType="User">
select name,password,phone,address,birthday
FROM b_user
WHERE name = #{name}
AND password = #{password}
</select>
未修改的mapper接口
User findUserByNameAndPwd(String name, String password) throws Exception;
修改后的mapper接口,这样问题就解决了
User findUserByNameAndPwd(@Param("name") String name, @Param("password")String password) throws Exception;