SpringMVC中的异步提交表单

本文详细介绍了SpringMVC框架中参数的传递方法,包括View向控制器及控制器向View的参数传递方式,并提供了异步表单提交的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.前言

最近在做一个项目,前台框架用的是EasyUI+SpringMVC,由于对SpringMVC不太了解,所以刚开始接触的时候有点吃力,在此通过一个EasyUi中的DataGrid表格来总结一下.


 2.SpringMVC中的View向控制器传参

在SpringMVC中,View如何向控制器传参数呢?尤其是Form表单提交的时候,具体有如下几种方式

2.1 HttpServletRequest

可以通过getParameter()方法来获取前台传过来的参数


2.2 Form表单绑定

[java]  view plain  copy
 print ?
  1. //这样才访问的时候,直接就封装成了对象  
  2.     public String queryPerson(person person){  
  3.         return "index";  
  4.     }  


通过这样,就直接把前台参数封装成了person对象,这样就接收到了参数


2.3 随意参数设置

[java]  view plain  copy
 print ?
  1. //通过指定参数,就可以获取到前台传过来的值  
  2.     public String queryPerson(String personId,String personName){  
  3.         return "index";  
  4.     }  


通过在方法中设置参数,就可以在前台获取到传过来的参数,但要保证,参数名称要一致



 3.SpringMVC中控制器向View视图传参数

3.1 Model传参数

[java]  view plain  copy
 print ?
  1. //采用这种方式,把数据放置到Model中,则可以在后台直接获取到数据  
  2.     public String toPerson(Model model){  
  3.         /*直接把值放置到model中,在前台通过${key}值来获取*/  
  4.         model.addAttribute("p""nihoama");   
  5.         return "index";   
  6.     }  

才用这种方式,把参数封装到model中,然后在前台通过${key}值,就可以获取到控制器传过来的参数


3.2 map传参数

[java]  view plain  copy
 print ?
  1. /*采用这种方式,把数据写到map中,这时就可以在前台页面中获取到控制器的数据*/  
  2.     protected ModelAndView handleRequestInternal(HttpServletRequest arg0,  
  3.             HttpServletResponse arg1) throws Exception {  
  4.         System.out.println("hello springmvc");  
  5.         Map<String, String> map=new HashMap<String, String>();  
  6.         map.put("p""nihaoma");  
  7.         //ModelAndView会被视图解析器解析自动加上前缀和后缀  
  8.         return new ModelAndView("index",map);  
  9.     }  

与model类似,把值放置到map中,然后在前台直接获取即可


3.3 PrintWriter对象输出内容

[java]  view plain  copy
 print ?
  1. //通过使用PrintWriter对象,就可以直接把内容打印到页面上  
  2.     public void outString(PrintWriter out){  
  3.         out.print("你好吗");  
  4.     }  

通过PrintWriter对象,就可以直接把内容输出到页面上


3.4 @ResponseBody输出字符串

[java]  view plain  copy
 print ?
  1. //通过打上此标签,就会直接把字符串输出到页面上  
  2.     @ResponseBody   
  3.     public String outString(){  
  4.         return "你好吗";  
  5.     }  


如果在方法上放置此注解的话,那么返回的String值,就不在是视图,而将会是以流的形式返回字符串

 4.SpringMVC异步提交表单

最近用到了异步提交表单的操作,下面展示一下

js操作

[javascript]  view plain  copy
 print ?
  1. // 添加字典类型信息方法  
  2. function AddDictionaryType() {  
  3.   
  4.     $('#AddDictionaryTypeForm').form('submit', {  
  5.         url : "addDictionaryType",  
  6.         onSubmit : function() {  
  7.             var isValid = $(this).form('validate');  
  8.             return isValid; // 返回false终止表单提交  
  9.         },  
  10.         success : function(data) {  
  11.             if (data == "success") {  
  12.                 $.messager.alert('提示''添加成功!');  
  13.                 $('#dg').datagrid('reload'); // 重新载入当前页面数据  
  14.                 $('#Addwin').window('close'); // 关闭窗口  
  15.   
  16.             } else {  
  17.                 $.messager.alert('提示信息''添加失败,请联系管理员!''warning');  
  18.             }  
  19.   
  20.         }  
  21.     });  
  22.   
  23. }  


异步调用的方法

[java]  view plain  copy
 print ?
  1. /** 
  2.      * 字典类型的添加方法 
  3.      *  
  4.      * @param request 
  5.      *            获取 
  6.      * @param response 
  7.      *            响应 
  8.      * @return 返回类型为void 
  9.      */  
  10.     @RequestMapping("/addDictionaryType")  
  11.     public void add(HttpServletRequest request, HttpServletResponse response) {  
  12.   
  13.         // 定义是否添加成功标识  
  14.         boolean result = false;  
  15.         // 定义字典类型实体  
  16.         DictionaryType dictionaryType = new DictionaryType();  
  17.         try {  
  18.   
  19.             // 防止中文乱码  
  20.             dictionaryType.setDictionaryTypeName(new String(request  
  21.                     .getParameter("DictionaryTypeName").getBytes("iso-8859-1"),  
  22.                     "UTF-8"));  
  23.             dictionaryType.setDictionaryTypeCode(new String(request  
  24.                     .getParameter("DictionaryTypeCode").getBytes("iso-8859-1"),  
  25.                     "UTF-8"));  
  26.             dictionaryType.setStatus(new String(request.getParameter("status")  
  27.                     .getBytes("iso-8859-1"), "UTF-8"));  
  28.             // 获得当前计算机的名称  
  29.             dictionaryType.setOperator(new String(System.getProperty(  
  30.                     "user.name").getBytes("iso-8859-1"), "UTF-8"));  
  31.             dictionaryType.setComment(new String(request  
  32.                     .getParameter("comment").getBytes("iso-8859-1"), "UTF-8"));  
  33.   
  34.             // 调用保存的方法  
  35.             result = dictionaryTypeBean.saveEntity(dictionaryType);  
  36.             // 判断是否保存成功,成功的话,向前台输出success  
  37.             if (result) {  
  38.                 outToJson.outJson(response, "success");  
  39.             } else {  
  40.                 // 失败的话,向前台输出error  
  41.                 outToJson.outJson(response, "error");  
  42.             }  
  43.   
  44.         } catch (Exception e) {  
  45.             System.out.println("添加字典类型失败");  
  46.             e.printStackTrace();  
  47.         }  
  48.   
  49.     }  

上面就直接通过PrintWriter对象来输出参数,然后在JS中异步获取来进行判断
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值