springmvc


  1. 搭建环境
  2. 如何完成controller和viewer的映射
  3. 如何把值传给controller
  4. controller传值给viewer
  5. 异常出咯
  6. 页面标签
  7. 文件上传
  8. 深入一下源代码


 controller 控制器     
映射文件 当前的url交给哪个controller处理
找到对应的视图 方式


新建mavenproject时要选maven-webapp 不要importm maven 要点enable 

  1. web.xml
<servlet>
  <servlet-name>mvc </servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet </servlet-class>
  <load-on-startup>1 </load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>mvc </servlet-name>
  <url-pattern>/ </url-pattern>

  1. 创建一个spring xml 文件 配置
名称为   <servlet-name>mvc </servlet-name>里的名字


  1. 找视图
prefix+view +suffix

传值


public String hello ( @RequestParam ( "username" ) String username){

    System. out .println( "hello" ) ;
    System. out .println(username) ;
    return "hello" ;
}






  1. Map



  1. Model


Rest
user_show?id=120
user/120

user_updateIuput?id=123
user/123/delete

rest风格不等于使用Rest技术

GET POST PUT DELETE

强调一个资源对应多个视图  映射json xml视图



显示全部

1
Model-User





添加
<%@ taglib prefix=" sf " uri=" http://www.springframework.org/tags/form " %>
< sf :form method ="post" modelAttribute ="user" ></ sf :form

自动把表单的值添加到user中

redirect 客户端跳转




验证 jsr303






package com.waj.controller ;

import com.waj.model.User ;
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. PathVariable ;
import org.springframework.web.bind.annotation. RequestMapping ;
import org.springframework.web.bind.annotation.RequestMethod ;

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

/**
* Created by waj on 17/6/29.
*/
@Controller
@RequestMapping ( "/user" )
public class UserController {
    private Map<String , User> users = new HashMap<String , User>() ;


    public UserController () {
        users .put( "sdy" ,new User( "sdy" , "123" , "ddd" , "ssss" )) ;
        users .put( "sd" ,new User( "yh" , "1234" , "dddd" , "ssss" )) ;
        users .put( "s" ,new User( "sy" , "1235" , "dd" , "ssss" )) ;
        users .put( "sy" ,new User( "sd" , "1236" , "d" , "ssss" )) ;


    }

    @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){

        //开启modeldriven
        model.addAttribute( new User()) ;

        return "user/add" ;
    }

    //具体添加的时候post,访问以下代码
    @RequestMapping ( value = "/add" , method = RequestMethod. POST )
    public String add ( @Validated User user , BindingResult br){ //一定要紧跟validater写验证结果类binding
        if (br.hasErrors()){
            //如果有错误,跳转到add视图
            return "user/add" ;
        }

        users .put(user.getUsername() , user) ;
        return "redirect:/user/users" ;
    }

    @RequestMapping ( value = "/{username}" , method = RequestMethod. GET )
    public  String show ( @PathVariable String username , Model model){
        model.addAttribute( users .get(username)) ;
        System. out .print(username) ;
        return "user/show" ;
    }

    @RequestMapping ( value = "/{username}/update" , method = RequestMethod. GET )
    public String update ( @PathVariable String username , Model model){
        model.addAttribute( users .get(username)) ;
        return  "user/update" ;

    }

    @RequestMapping ( value = "/{username}/update" , method = RequestMethod. POST )
    public  String update ( @Validated User user , BindingResult br , @PathVariable String username){
        if (br.hasErrors()){
            //如果有错误,跳转到add视图
            return "user/update" ;
        }

        users .put(username , user) ;
        return "redirect:/user/users" ;
    }

    @RequestMapping ( value = "/{username}/delete" , method = RequestMethod. GET )
    public String Delete ( @PathVariable String username){
        users .remove(username) ;
        return "redirect:/user/users" ;
    }


    @RequestMapping ( value = "/login" , method = RequestMethod. POST )
    public String login (String username , String password){
        return  null;
    }
}


@Responsebody
绑定请求对象,将json相关协议转成所需的对象

方法的返回结果直接写入HTTP response body中

一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值