springmvc 查询问题

sx32612254 2016-06-04 03:18:17
后台报错:
Servlet.service() for servlet [StaffSystem] in context with path [/StaffSystem] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause java.lang.NullPointerException

imp代码:

package com.etc.web.imp;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

import com.etc.web.model.User;
import com.etc.web.service.UserService;

public class UserServiceImp implements UserService{

private JdbcTemplate jdbcTemplate;
@Override
public void save(User user) {
// TODO Auto-generated method stub
jdbcTemplate.update("insert into user(username,pwd) values (?,?)",new Object[]{user.getUsername(),user.getPassword()});
}

@Override
public void del(User user) {
// TODO Auto-generated method stub

}

@Override
public void update(User user) {
// TODO Auto-generated method stub

}

@Override
public void searchAll() {
// TODO Auto-generated method stub
}
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}

public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}

@Override
public List<User> searchLogin(String username){
// TODO Auto-generated method stub
List<User> users = null;
Object[] params = new Object[] { username };
String sql = "select * from user where username = ?";
users = (List<User>) jdbcTemplate.queryForObject(sql, params, new UserRowMapper());
return (users != null && users.size() > 0) ? users : null;
}
}


controller 代码:

package com.etc.web.controller;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import com.etc.web.imp.UserServiceImp;
import com.etc.web.model.User;
import com.etc.web.service.UserService;

@Controller
@RequestMapping("/user")
public class UserController {
UserService userService;
@RequestMapping(value="/toIndex",method=RequestMethod.POST)
public ModelAndView toIndex (HttpServletRequest request){
String username = request.getParameter("username");
//此行报错
userService.searchLogin(username);
return new ModelAndView("/index");
}

}


RowMapper:

package com.etc.web.imp;

import java.sql.ResultSet;
import java.sql.SQLException;

import org.springframework.jdbc.core.RowMapper;

import com.etc.web.model.User;

public class UserRowMapper implements RowMapper<User> {

@Override
public User mapRow(ResultSet rs, int value) throws SQLException {
// TODO Auto-generated method stub
User user = new User();
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
return user;
}
}

spring-servlet配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

<!-- 静态资源访问 -->
<mvc:default-servlet-handler/>
<!-- 扫描包 -->
<context:component-scan base-package="com.etc.web.controller" />
<!-- 添加注解驱动 -->
<mvc:annotation-driven />

<bean id="ViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"></property>
<property name="suffix" value=".jsp"></property>
</bean>

<!-- apache.dbcp连接池的配置 -->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/test"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
<property name="maxActive" value="100"></property>
<property name="maxIdle" value="30"></property>
<property name="maxWait" value="500"></property>
<property name="defaultAutoCommit" value="true"></property>
</bean>

<!-- jdbc注入 -->
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>

<!-- dao注入 -->
<bean id="userService" class="com.etc.web.imp.UserServiceImp">
<property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>
</beans>


困扰一天了,求帮忙解决
...全文
224 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jwyzszh 2016-06-12
  • 打赏
  • 举报
回复
userService 要加上get set 方法
Intboy 2016-06-06
  • 打赏
  • 举报
回复
controller中的UserService userService; 加上注解@Autowired,然在你的service中也加上注解@Service("userService")

@Autowired
UserService userService;

@Service("userService")
public class UserServiceImp implements UserService{
qq_34935513 2016-06-06
  • 打赏
  • 举报
回复
应该就是没写自动注入@Autowired的原因,因为没有set,get方法,所以报错空指针了
qq_16082733 2016-06-06
  • 打赏
  • 举报
回复
@Controller @RequestMapping("/user") public class UserController { UserService userService; @RequestMapping(value="/toIndex",method=RequestMethod.POST) public ModelAndView toIndex (HttpServletRequest request){ String username = request.getParameter("username"); //此行报错 userService.searchLogin(username); return new ModelAndView("/index"); } }; 里面的 UserService userService; 少了注解 @Autowired
菜 头 2016-06-06
  • 打赏
  • 举报
回复
UserService userService; 这东西没注入到controller中,给它添加setter和getter方法就好了
子夜静舞 2016-06-06
  • 打赏
  • 举报
回复
@Autowired UserService userService; 你这个userService 没有注入
sx32612254 2016-06-04
  • 打赏
  • 举报
回复
断点进 InvocationTargetException.<init>(Throwable) line: 72 public InvocationTargetException(Throwable target) { super((Throwable)null); // Disallow initCause this.target = target; } 这个异常抛出
sx32612254 2016-06-04
  • 打赏
  • 举报
回复
后台就是在 userService.searchLogin(username);这里报错,没有进serviceImp
萝卜精 2016-06-04
  • 打赏
  • 举报
回复
空指针异常,你的username是控制,后台输出一下,看一下结果
sx32612254 2016-06-04
  • 打赏
  • 举报
回复
求回复,这个问题卡了好久啊 谢谢

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧