1. 程式人生 > >SpringMVC中的非同步提交表單

SpringMVC中的非同步提交表單

 1.前言

最近在做一個專案,前臺框架用的是EasyUI+SpringMVC,由於對SpringMVC不太瞭解,所以剛開始接觸的時候有點吃力,在此通過一個EasyUi中的DataGrid表格來總結一下.

 2.SpringMVC中的View向控制器傳參

在SpringMVC中,View如何向控制器傳引數呢?尤其是Form表單提交的時候,具體有如下幾種方式

2.1 HttpServletRequest

可以通過getParameter()方法來獲取前臺傳過來的引數

2.2 Form表單繫結

//這樣才訪問的時候,直接就封裝成了物件
	public String queryPerson(person person){
		return "index";
	}
通過這樣,就直接把前臺引數封裝成了person物件,這樣就接收到了引數

2.3 隨意引數設定

//通過指定引數,就可以獲取到前臺傳過來的值
	public String queryPerson(String personId,String personName){
		return "index";
	}
通過在方法中設定引數,就可以在前臺獲取到傳過來的引數,但要保證,引數名稱要一致

 3.SpringMVC中控制器向View檢視傳引數

3.1 Model傳引數

//採用這種方式,把資料放置到Model中,則可以在後臺直接獲取到資料
	public String toPerson(Model model){
		/*直接把值放置到model中,在前臺通過${key}值來獲取*/
		model.addAttribute("p", "nihoama");	
		return "index";	
	}

才用這種方式,把引數封裝到model中,然後在前臺通過${key}值,就可以獲取到控制器傳過來的引數

3.2 map傳引數

/*採用這種方式,把資料寫到map中,這時就可以在前臺頁面中獲取到控制器的資料*/
	protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
			HttpServletResponse arg1) throws Exception {
		System.out.println("hello springmvc");
		Map<String, String> map=new HashMap<String, String>();
		map.put("p", "nihaoma");
		//ModelAndView會被檢視解析器解析自動加上字首和字尾
		return new ModelAndView("index",map);
	}

與model類似,把值放置到map中,然後在前臺直接獲取即可

3.3 PrintWriter物件輸出內容

//通過使用PrintWriter物件,就可以直接把內容列印到頁面上
	public void outString(PrintWriter out){
		out.print("你好嗎");
	}

通過PrintWriter物件,就可以直接把內容輸出到頁面上

3.4 @ResponseBody輸出字串

//通過打上此標籤,就會直接把字串輸出到頁面上
	@ResponseBody 
	public String outString(){
		return "你好嗎";
	}
如果在方法上放置此註解的話,那麼返回的String值,就不在是檢視,而將會是以流的形式返回字串

 4.SpringMVC非同步提交表單

最近用到了非同步提交表單的操作,下面展示一下

JS操作

// 新增字典型別資訊方法
function AddDictionaryType() {

	$('#AddDictionaryTypeForm').form('submit', {
		url : "addDictionaryType",
		onSubmit : function() {
			var isValid = $(this).form('validate');
			return isValid; // 返回false終止表單提交
		},
		success : function(data) {
			if (data == "success") {
				$.messager.alert('提示', '新增成功!');
				$('#dg').datagrid('reload'); // 重新載入當前頁面資料
				$('#Addwin').window('close'); // 關閉視窗

			} else {
				$.messager.alert('提示資訊', '新增失敗,請聯絡管理員!', 'warning');
			}

		}
	});

}


非同步呼叫的方法

/**
	 * 字典型別的新增方法
	 * 
	 * @param request
	 *            獲取
	 * @param response
	 *            響應
	 * @return 返回型別為void
	 */
	@RequestMapping("/addDictionaryType")
	public void add(HttpServletRequest request, HttpServletResponse response) {

		// 定義是否新增成功標識
		boolean result = false;
		// 定義字典型別實體
		DictionaryType dictionaryType = new DictionaryType();
		try {

			// 防止中文亂碼
			dictionaryType.setDictionaryTypeName(new String(request
					.getParameter("DictionaryTypeName").getBytes("iso-8859-1"),
					"UTF-8"));
			dictionaryType.setDictionaryTypeCode(new String(request
					.getParameter("DictionaryTypeCode").getBytes("iso-8859-1"),
					"UTF-8"));
			dictionaryType.setStatus(new String(request.getParameter("status")
					.getBytes("iso-8859-1"), "UTF-8"));
			// 獲得當前計算機的名稱
			dictionaryType.setOperator(new String(System.getProperty(
					"user.name").getBytes("iso-8859-1"), "UTF-8"));
			dictionaryType.setComment(new String(request
					.getParameter("comment").getBytes("iso-8859-1"), "UTF-8"));

			// 呼叫儲存的方法
			result = dictionaryTypeBean.saveEntity(dictionaryType);
			// 判斷是否儲存成功,成功的話,向前臺輸出success
			if (result) {
				outToJson.outJson(response, "success");
			} else {
				// 失敗的話,向前臺輸出error
				outToJson.outJson(response, "error");
			}

		} catch (Exception e) {
			System.out.println("新增字典型別失敗");
			e.printStackTrace();
		}

	}

上面就直接通過PrintWriter物件來輸出引數,然後在JS中非同步獲取來進行判斷

相關推薦

Jquery點選按鈕 非同步和同步提交

前臺部分程式碼: <form class="addSud" method="post" action=""> <table> <tr> <td class="textRight">姓名</td&

SpringMVC學習筆記:提交 參數的接收

服務器 book postman pan json格式數據 ica 上傳圖片 異步 collect SpringMVC可以接收原生form表單和json格式數據 有一個名為Book的model,其中的屬性如下: 字符串類型的name,數字類型的price,數組類型的c

使用SpringMVC 實現RESTful,並解決PUT,DELETE請求無法提交資料的問題

瞭解RESTful,使用SpringMVC 實現RESTful 關於REST: 1.表述性狀態轉移,是web服務的一種架構風格,是一種思想,而非標準或軟體。 2. 通常基於使用HTTP,URI,XML、JSON、HTML這些現廣泛流行的協議。 3.屬於輕量級(使

springmvc 攔截器 防止重複提交

第一種方法:判斷session中儲存的token 比較麻煩,每次在提交表單時都必須傳入上次的token。而且當一個頁面使用ajax時,多個表單提交就會有問題。 註解Token程式碼: package com.thinkge

springmvc結合jquery.form.js非同步提交上傳檔案

需要 jquery.form.js 外掛 <script type="text/javascript" src="/libs/js/form/jquery.form.js"><

ajax-springMVC提交的方式

1.request引數提交(Form提交),適用於GET/POST request引數傳遞都會轉換成 id=123&fileName=test.name&type=culture_art這種形式,get請求會顯示在url上,post不在url上顯示   ajax寫

SpringMVC中的非同步提交

 1.前言 最近在做一個專案,前臺框架用的是EasyUI+SpringMVC,由於對SpringMVC不太瞭解,所以剛開始接觸的時候有點吃力,在此通過一個EasyUi中的DataGrid表格來總結

SpringMVC入門小例子——提交

主要檔案清單 WebContent/WEB-INF/web.xml src/springmvc-servlet.xml src/test.SpringMVC/MVCController.java W

Ajax SpringMVC 提交資料

Ajax 的寫法 function saveSplash() { var titleVal = $("#title").val(); var subTitleVal = $("#subTitle").val(); if (titleVal == null ||

AJax提交資料到後臺springmvc接收

第一種方法直接用serialize()方法function insert(){ $.ajax({ type:"POST", url:"$

springmvc提交日期用Date接收

springMVC提交表單時候,日期資料正常情況下要用String來接收,如果想要用Date來接收,可以實現PropertyEditorRegistry介面,這個介面在spring-beans包下 @InitBinder protected voi

JavaWeb網上圖書商城完整項目--day02-4.regist頁面提交時對所有輸入框進行校驗

word except 繼承 stub jstl use cti bmi imp 1、現在我們要將table表中的輸入的參數全部提交到後臺進行校驗,我們提交我們是按照表單的形式提交,所以我們首先需要在table表外面添加一個表單 <%@ page lang

form提交

-name 出錯 ajax請求 int data fun java .get 請求 菜鳥的第一篇文章,今天在工作中遇到一個問題。下面來說說,也許很多大神都知道了,但作為菜鳥還是想說說。 對於table表格裏面的數據,如下: [html] view plain copy

php 使用curl 進行簡單模擬提交

8.0 bin field this class chrom 提交表單 bsp alt //初始化curl $ch = curl_init(); $url = ‘xxx‘; $option = [ CURLOPT_URL => $url, CURLO

分針網—每日分享:ajax提交

print win -c 找不到 用戶 post請求 its -o block ajax提交表單在項目中常用,前臺無論是簡單的html、jsp或者是使用了easyui框架,提交表單都會使用到ajax,extjs框架其實也是使用了ajax只不過對其進行了封裝了,我們使用的時

html提交到Servlet

mage ima mas png you tps quest getpara col 源碼地址 https://github.com/YouXianMing/Java-Web-Study/tree/master/Servlet-Form 演示效果(註意post與g

使用iframe實現頁面無刷新提交

fin 友好 frame you itl 圖片 項目需求 scripts tel iframe提交表單其實比ajax要方便一些,當然ajax也有ajax的好處,只是ajax編碼處理有時有些麻煩,雖然經過轉碼是可以解決中文問題,但如果直接使用iframe不存這些問題了,下面來

織夢提交不進行跳轉

emp 管理 echo style ech history 文件 進行 跳轉 找的plus文件裏的diy.php 在100行 $bkmsg = ‘發布成功,請等待管理員處理...‘;後面添加echo "<script>alert(‘提交成功!‘); histor

ajax提交,並且可以支持文件上傳

ons 成功 引入 spl [0 ror bsp str 不能 當我們提交表單但是又不想要刷新頁面的時候就可以考慮使用ajax來實現提交功能,但是這有個局限就是當有文件上傳的時候是行不通的,下面借助於jquery.form可以很方便滿足我們的需求. 1.表單寫

jQuery中使用ajaxSubmit提交

target targe 表單 tar 使用 sdn get .net net 1.http://www.cnblogs.com/liuhongfeng/p/5150389.html 2.http://blog.csdn.net/baidu_29119747/article