初学springmvc在跳转时候出错

流离影风 发布于 2015/07/17 15:01
阅读 220
收藏 0

1,实体类

package com.bw.model;

import javax.validation.constraints.Size;

import org.hibernate.validator.constraints.NotEmpty;

public class User {
    
    private String username;
    private String password;
    
    public User(){};
    
    public User(String username, String password) {
        super();
        this.username=username;
        this.password=password;
    }
    
    public void setUsername(String username) {
        this.username = username;
    }
    @NotEmpty(message="用户名不为空")
    public String getUsername() {
        return username;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    
    @Size(min=1,max=10,message="密码长度应在1和10之间")
    public String getPassword() {
        return password;
    }
    
}

2 controller层

package com.bw.controller;

import java.util.HashMap;
import java.util.Map;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.bw.model.User;

@Controller
@RequestMapping("/user")
public class UserController {
    private Map<String,User> users=new HashMap<String,User>();
    
    public UserController(){
        users.put("absc", new User("absc","123"));
        users.put("abdc", new User("abdc","123"));
        users.put("abed", new User("abed","123"));
        users.put("zang", new User("zang","qws"));
        users.put("zhang", new User("zhang","qws"));
    }
    @RequestMapping(value="/users",method=RequestMethod.GET)
    public String list(Model model){
        model.addAttribute("users", users);
        return "user/list";        
    }
    
    //链接到add页面时是get请求,会访问以下代码
    @RequestMapping(value="/add",method=RequestMethod.GET)
    public String add(Model model){
        //开启model driven
        model.addAttribute(new User());
        return "user/add";
    }
    //在具体添加用户时是post请求,会访问以下代码
    @RequestMapping(value="/add",method=RequestMethod.POST)
    public String add(@Validated User user,BindingResult br){
        if(br.hasErrors()){
            return "user/add";
        }
        users.put(user.getUsername(), user);
        
        return "redirect:/user/users";
    }
}

3.List.jsp页面

<a href="add">添加</a><br/>
   <c:forEach items="${users}" var="um">
   
   ${um.value.username }--${um.value.password } <br/>

4.add.jsp页面

 <sf:form method="post" modelAttribute="user">
       Username:<sf:input path="username"/><sf:errors path="username"/><br/>
       Password:<sf:input path="password"/><sf:errors path="password"/><br/>
   <input type="submit" value="添加用户"/>

输入网址http://guoyuchen-pc:8080/springmvc_hello/user/users进入到list页面.里面有当前用户和密码信息,但是在点击上面的 “添加”后就跳转出错

加载中
0
杨少_winston
杨少_winston
/user/add   这个路径才对
流离影风
流离影风
还是空白页,但是程序反着来可以从add的提交转到list页面且成功添加新纪录;——我是看视频上的讲解做的,用的是rest风格,程序和视频没有区别,但是总是在跳转中出错
返回顶部
顶部