• 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";
    }

      

  • 相关阅读:
    H-ui前端框架
    表单验证
    Switch 语句
    mysql下优化表和修复表命令使用说明(REPAIR TABLE和OPTIMIZE TABLE)
    mysql之repair table 修复表札记
    社会化海量数据采集爬虫框架搭建
    微信开发学习路线
    搜索引擎的商业价值
    centos7图形配置 firewall-config
    恢复gvim的ctl+v可视模式设置
  • 原文地址:https://www.cnblogs.com/wk-missQ1/p/13508375.html
Copyright © 2020-2023  润新知