zoukankan      html  css  js  c++  java
  • SpringMVC实际应用场景

    1.将请求参数映射到处理程序方法上

      使用@RequestParam 注解将请求参数作为处理程序方法的常规参数进行检索。这是将控制器HttpServletRequest 与Servlet API 的接口分离的好方法。

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

      Spring将方法参数用户名密码绑定到具有相同名称的HTTP请求参数。这意味着您可以按以下方式调用URL(如果请求方法是GET):

    http:// localhost:8080 / spring / login?username = scott&password = tiger

      如果参数名称与变量名称不同,则可以如下指定参数的实际名称:

    @RequestParam("SSN") int securityNumber

      该@RequestParam 注解也有两个额外的属性,这可能是在某些情况下是有用的。该属性指定参数是否为必需。例如: required 

    @RequestParam(required = false) String country

      这意味着该参数  country 是可选的;因此,它可能会从请求中丢失。在上面的示例中,country 如果请求中不存在此类参数,则变量  将为null。

      另一个属性是  defaultValue,可以在请求参数为空时用作后备值。例如:

    @RequestParam(defaultValue = "18") int age

    2.处理程序方法中的重定向

      如果你希望在满足条件的情况下将用户重定向到另一个URL,请redirect:/ 在URL之前追加。以下代码段给出了一个示例:

    // 检查登录状态....
    if (!isLogin) {
        return new ModelAndView("redirect:/login");
    }
    // 返回用户列表

    3.处理表格提交和表格验证

      通过提供@ModelAttribute 用于将表单字段绑定到表单支持对象的注解以及BindingResult 用于验证表单字段的界面,Spring使处理表单提交变得容易。

    @Controller
    public class RegistrationController {
        @RequestMapping(value = "/doRegister", method = RequestMethod.POST)
        public String doRegister(
            @ModelAttribute("userForm") User user, BindingResult bindingResult) {
            if (bindingResult.hasErrors()) {
                // 表单验证错误
            } else {
                // 表单输入没问题
            }
            // 注册过程……
            return "Success";
        }
    }

    4.处理文件上传

      通过自动将上传数据绑定到CommonsMultipartFile 对象数组,Spring还使在处理程序方法中处理文件上传变得容易。Spring使用Apache Commons FileUpload作为基础的多部分解析器。

    @RequestMapping(value = "/uploadFiles", method = RequestMethod.POST)
    public String handleFileUpload(
            @RequestParam CommonsMultipartFile[] fileUpload) throws Exception {
        for (CommonsMultipartFile aFile : fileUpload){
            // 存储上传的文件
            aFile.transferTo(new File(aFile.getOriginalFilename()));
        }
        return "Success";
    }

      

  • 相关阅读:
    【工具篇】利用DBExportDoc V1.0 For MySQL自动生成数据库表结构文档(转
    PHP Client for Mysql Binlog
    MySQL的binlog日志恢复(转)
    Linux 普通进程 后台进程 守护进程(转)
    实战:MySQL Sending data导致查询很慢的问题详细分析(转)
    mysql索引无效且sending data耗时巨大原因分析
    阿里云-DRDS(转)
    MySQL查看SQL语句执行效率(转)
    nginx php-fpm 输出php错误日志(转)
    Golang指针基本介绍及使用案例
  • 原文地址:https://www.cnblogs.com/wk-missQ1/p/13508375.html
Copyright © 2011-2022 走看看