昨天的SSM框架搭建已经将bean、controller、dao、service四个包导入了Java directory,而今天的的任务就是完善这四个包。
bean
1.点击bean,右键-new-Java class,建立一个新的类Userinfo,这是存放用户表的表名。
2.建立Userinfo类后,和数据库里的表一样,设置三个私有变量:id,username和password。然后右键空白处-generate-getter and setter 以及右键空白处-generate-tostring().
注意:Userinfo类不需要点constructor来构造函数
3.代码如下;
package com.zhongruan.bean;
public class Userinfo {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "Userinfo{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
service
service层需要建立一个接口IUserService以及一个含USerServiceImpl类的包impl来实现这个接口。
IUserService:
package com.zhongruan.service;
import com.zhongruan.bean.Userinfo;
import java.util.List;
public interface IUserService {
public List<Userinfo> findAll();
}
UserServiceImpl:
package com.zhongruan.service.impl;
import com.zhongruan.bean.Userinfo;
import com.zhongruan.dao.IUserDao;
import com.zhongruan.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements IUserService {
@Autowired//用spring来帮你创建一个dao的对象
IUserDao userDao;//取dao从service中
@Override
public List<Userinfo> findAll() {
return userDao.findAll();
}
}
dao
dao层需要建立一个接口IUserDao
package com.zhongruan.dao;
import com.zhongruan.bean.Userinfo;
import java.util.List;
public interface IUserDao {
public List<Userinfo> findAll();//建立list将findall方法找到的用户信息放入
}
controller
1.controller层需要建立一个Java类名为UserController
package com.zhongruan.controller;
import com.zhongruan.bean.Userinfo;
import com.zhongruan.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
@Controller //表示这个类是一个控制器来控制接口IUserService
@RequestMapping("user")
public class UserController {
@Autowired
private IUserService userService;
@RequestMapping("/findAll.do")
public ModelAndView findAll(){
List<Userinfo> userinfos = userService.findAll();
ModelAndView mv=new ModelAndView();
mv.addObject("ui",userinfos);
mv.setViewName("allUser");
return mv;
}
}
2.controller可以控制跳转到哪里,所以运行后的网址与写入UserController的代码有关。
@RequestMapping("user")
@RequestMapping("/findAll.do")
运行后的网址截图如下:
注意:
1.报红的可能原因:未刷新
刷新方法:
点击右边栏的Maven Projects,选择dependencies,若有报红,尝试单击左上角的刷新按键。
2.error500
写代码时不能疏忽,即使是一个空格都不能忘记,今天在写resources里的UserMapper.xml文件时,我将select * from userinfo语句里“*“号后的空格漏掉了,在实现时跳转用户信息时一直显示error500.
同时造成error500的原因还可能为:
1.大小写错误
2.数据库名字与表名字混淆
3.文件路径出现问题
4.数据库的密码与用户出错
3.如何解决web页面的中文乱码
在index.jsp文件头部加上一行代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>