1. 与之前的实验代码的不同点
- 首先,在web.xml中要增加编码过滤器,是为了避免中文乱码问题
<!-- 配置过滤器,避免中文乱码 -->
<filter>
<filter-name>jerry</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jerry</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- !!!!!!
需要写Service层,实现了model层与controller层的分离。
以前没有实现分离之前,在controller类中,在方法参数中声明实体类,可以打点调用方法;而使用了service之后,要创建一个service接口,里面写要实现的功能方法,然后创建类实现接口,写具体的方法。
public interface UserService {
boolean addUser(User u);
ArrayList<User> getUser();
}
@Service
public class UserServiceImp implements UserService{
private static ArrayList<User> users = new ArrayList<User>();
@Override
public boolean addUser(User u) {
if(!"it人".equals(u.getCarrer())) {
users.add(u);
return true;
}else {
return false;
}
}
@Override
public ArrayList<User> getUser() {
return users;
}
}
- 在控制器类中,可以使用service注解。
首先,在类中写@Autowired和声明接口;然后可以在方法中调用。
@Autowired
private UserService service;
public String addUser(@ModelAttribute User user,Model model) {
if(service.addUser(user)) {
model.addAttribute("userlist",service.getUser());
return "userList";
}
2. 发现的问题
使用方法级别的注解,用写value
使用类级别的注解,不写value