使用帶有注釋和JQuery的Spring MVC 3的Ajax

與Ajax一起工作對我來說一直很有趣! 是不是 ? 我將使您輕松將Ajax與Spring MVC 3和JQuery結合使用。 這篇文章將向您說明如何在工業編碼的現實生活中使用Ajax。 和往常一樣,我們將在Spring MVC 3框架中以Ajax的實際示例為例,并將其實現,并且通過使您理解本主題,我將使實現變得容易。

讓我們看看示例的要求是什么,Spring MVC 3 Ajax工具將如何滿足它:
在我們的示例中,我們將列出姓名和學歷最高的學生,并將其發送到安置辦公室,以便學生獲得機會。 我們將在線向學生提供“添加學生表格”,以便他們可以在線提交姓名并注冊。 由于很多學生都會使用該系統,因此系統的性能可能會非常低。 為了提高Web應用程序的性能,我們將結合使用Ajax和Spring MVC 3 Framework和JQuery。 我們必須執行以下步驟來實現我們的示例:

  1. 首先,我們將創建一個包含學生信息值的域類(User.java)。
  2. 之后,我們將創建控制器類(UserListController.java)以處理HTTP請求。 我們的控制器將處理三種類型的請求。 首先,顯示“添加學生表格”,其次處理來自“添加學生表格”的Ajax請求,并將學生添加到列表中,第三次顯示學生信息作為列表。
  3. 然后,我們將創建一個jsp頁面(AddUser.jsp)以顯示“添加學生表單”,該頁面將使用JQuery將Ajax請求發送到Spring MVC Controller。 jsp還將向用戶確認已將Student添加到列表中。
  4. 然后,我們將創建一個jsp(ShowUsers.jsp),該列表將列出列表中的所有用戶。

User.java
User.java具有兩個屬性名稱和教育信息,用于存儲學生信息。 以下是User.java的代碼:

package com.raistudies.domain;public class User {private String name = null;private String education = null;// Getter and Setter are omitted for making the code short
}

UserListController.java
控制器具有三種方法來處理三個請求url。 “ showForm”方法處理向用戶顯示表單的請求。 波紋管代碼顯示了UserListController.java:

package com.raistudies.controllers;import java.util.ArrayList;
import java.util.List;import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;import com.raistudies.domain.User;@Controller
public class UserListController {private List<User> userList = new ArrayList<User>();@RequestMapping(value="/AddUser.htm",method=RequestMethod.GET)public String showForm(){return "AddUser";}@RequestMapping(value="/AddUser.htm",method=RequestMethod.POST)public @ResponseBody String addUser(@ModelAttribute(value="user") User user, BindingResult result ){String returnText;if(!result.hasErrors()){userList.add(user);returnText = "User has been added to the list. Total number of users are " + userList.size();}else{returnText = "Sorry, an error has occur. User has not been added to list.";}return returnText;}@RequestMapping(value="/ShowUsers.htm")public String showUsers(ModelMap model){model.addAttribute("Users", userList);return "ShowUsers";}
}

“ addUsers”與處理表單的控制器方法相同,因為它還包含注解@ResponseBody ,它告訴Spring MVC該方法返回的String是對請求的響應,它不必查找此字符串的視圖。 因此,調整字符串將作為響應發送回瀏覽器,因此Ajax請求將起作用。 “ showUsers”方法用于向用戶顯示學生列表。
AddUser.jsp
AddUser.jsp包含一個簡單的表單,用于收集有關學生的信息,并使用JQerey JavaScript框架生成對服務器的Ajax請求。 以下是AddUser.jsp中的代碼:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Add Users using ajax</title><script src="/AjaxWithSpringMVC2Annotations/js/jquery.js"></script><script type="text/javascript">function doAjaxPost() {// get the form valuesvar name = $('#name').val();var education = $('#education').val();$.ajax({type: "POST",url: "/AjaxWithSpringMVC2Annotations/AddUser.htm",data: "name=" + name + "&education=" + education,success: function(response){// we have the response$('#info').html(response);$('#name').val('');$('#education').val('');},error: function(e){alert('Error: ' + e);}});}</script></head><body><h1>Add Users using Ajax ........</h1><table><tr><td>Enter your name : </td><td> <input type="text" id="name"><br/></td></tr><tr><td>Education : </td><td> <input type="text" id="education"><br/></td></tr><tr><td colspan="2"><input type="button" value="Add Users" onclick="doAjaxPost()"><br/></td></tr><tr><td colspan="2"><div id="info" style="color: green;"></div></td></tr></table><a href="/AjaxWithSpringMVC2Annotations/ShowUsers.htm">Show All Users</a></body>
</html>

如果您不了解JQuery,可能會有些困惑。 這是JQuery代碼的說明:

  1. var name = $('#name')。val(); :–這里的$是JQuery選擇器,用于選擇HTML中其標識符作為參數傳遞的任何節點。 如果標識符是帶有#的前綴,則意味著它是HTML節點的ID。 在這里, $('#name')。val()包含其“名稱”HTML節點的值。 用戶將在其中輸入其姓名的文本框為name。 因此Java腳本變量名稱將包含用戶的名稱。
  2. $ .ajax() :-是JQuery的$變量中的調用Ajax的方法。 這里有五個論點。 首先,“ type ”表示請求的Ajax類型。 它可以是POST或GET。 然后,“ url ”表示將要提交的Ajax提交的URL。 “ data ”將包含要發送到服務器的原始數據。 如果請求獲得成功并且服務器向瀏覽器發送響應,則“ 成功 ”將包含必須調用的功能代碼。 如果請求出現任何錯誤,“ error ”將包含必須調用的功能代碼。
  3. $('#info')。html(response); :-將服務器的響應設置為div。 這樣,“ Hello” +名稱將顯示在ID為“ info ”的div中。

ShowUsers.jsp
以下是ShowUsers.jsp中的代碼,用于將所有學生信息從ArrayList打印到jsp頁面:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Users Added using Ajax</title></head><body style="color: green;">The following are the users added in the list :<br><ul><c:forEach items="${Users}" var="user"><li>Name : <c:out value="${user.name}" />; Education : <c:out value="${user.education}"/></c:forEach></ul></body>
</html>

在這里,我們使用了JSTL核心taglib來遍歷ArrayList并在瀏覽器中顯示每個值。

  • <c:forEach items =“ $ {Users}” var =“ user”> :標簽用于遍歷ArrayList。 屬性“ items”用于定義存儲List對象的bean,因此items =” $ {Users}”表示在“ Users” bean中存在用戶列表。 “ var”屬性表示將存儲每個用戶的變量的名稱。
  • <c:out value =” $ {user.name}” /> :這樣,單個用戶將存儲在變量名“ user”中,因此要使用$ {user.name}在User對象中打印name屬性。

app-config.xml

我們的Spring MVC配置文件應該能夠處理注釋驅動的控制器。 配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans?? ??  ?? http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"><!-- Scans the classpath of this application for @Components to deploy as beans --><context:component-scan base-package="com.raistudies" /><!-- Configures the @Controller programming model --><mvc:annotation-driven /><!-- Resolves view names to protected .jsp resources within the /WEB-INF/views directory --><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean></beans>

將war文件部署到tomcat 6并在瀏覽器中單擊URL,將顯示以下頁面:

使用Spring MVC 3的Ajax表單

填寫學生信息:

使用Spring MVC 3的Ajax填寫表格

單擊“添加用戶”按鈕后,您將收到一條消息,提示用戶已被添加到列表中:

Ajax表單提交確認Spring MVC 3

要顯示添加到列表中的所有學生,請單擊“顯示所有用戶”按鈕,您將獲得以下頁面:

顯示所有用戶Spring MVC 3

這一切都來自使用Spring MVC 3和JQuery的Ajax。 您可以從以下鏈接下載源代碼。
資料來源: 下載

參考: 使用來自JCG合作伙伴的 Annotations和JQuery的帶有Spring MVC 3的Ajax ? Rai Studies博客上的Rahul Mondal。


翻譯自: https://www.javacodegeeks.com/2012/02/ajax-with-spring-mvc-3-using.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373300.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373300.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373300.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ThinkPHP 3 的輸出

一、ThinkPHP 3 的輸出 &#xff08;重點&#xff09;a、通過 echo 等PHP原生的輸出方式在頁面中輸出b、通過display方法輸出想分配變量可以使用assign方法c、修改左右定界符休要修改配置文件中的配置項TMPL_L_DELIM><{, //修改左定界符TMPL_R_DELIM>}>, //修…

java百度云文件上傳_關于如何在自己項目集成百度云BCE文件上傳STS方案

1、 項目背景由于本人項目需要&#xff0c;需要在視頻點播服務之中需要加載字幕文件(通用格式srt)&#xff0c;經過比較好幾家的公有云服務&#xff0c;最后選擇只有百度云提供字幕服務。字幕&#xff1a;我們通常在觀看外語電影的是&#xff0c;沒有國語版時候只能通過下載字幕…

Java 7 – NIO文件革命

Java 7&#xff08;“項目代幣”&#xff09;已于去年7月問世。 此版本中的新增功能很有用&#xff0c;例如&#xff0c;嘗試使用資源–從try塊自動處理可關閉的資源&#xff0c;switch語句中的字符串&#xff0c;用于異常的multicatch以及用于使用泛型的<>運算符。 每個…

hdu 3507 Print Article(斜率優化DP)

題目鏈接&#xff1a;hdu 3507 Print Article 題意&#xff1a; 每個字有一個值&#xff0c;現在讓你分成k段打印&#xff0c;每段打印需要消耗的值用那個公式計算&#xff0c;現在讓你求最小值 題解&#xff1a; 設dp[i]表示前i個字符需要消耗的最小值&#xff0c;那么有dp[i]…

第三章 consul服務注冊與服務查詢

1、定義一個服務 https://www.consul.io/docs/agent/services.html 該方法是服務注冊中提供服務的最常用的方法。 關于服務的定義&#xff1a;服務的屬性我們會在后邊每出現一個總結一個&#xff0c;最后再做總結。 2、服務注冊 2.1、創建服務文件所存放的文件夾 說明&#xff…

coreos 安裝mysql_CoreOS 在 PC 上快速安裝方法指南

意義能夠以最快的速度安裝部署Linux操作系統。安裝快速簡單&#xff0c;幾乎不花時間就可以開始運行Docker。運行速度非常快。使用內存硬盤。我的情況win8 筆記本偶爾玩游戲&#xff0c;但是裝Linux雙系統可能需要我一天的時間來完成。我的所有業務都只需要在Docker中跑就可以了…

使用ycsb測試cassandra

參考 https://github.com/cloudius-systems/osv/wiki/Benchmarking-Cassandra-and-other-NoSQL-databases-with-YCSB https://github.com/brianfrankcooper/YCSB/tree/master/cassandra 創建 表頭 https://gist.github.com/pbailis/3978273  設置field參數 長度和個數 啟動和…

Session 的配置和特性

session的配置 對于session的配置是php.ini中配置 session數據都是保存在文本文件中 設置session文件的保存位置 說明&#xff1a; 默認是保存在windows/temp目錄 設置session保存作為客戶端標識的數據使用cookie 設置session保存客戶端標識的數據&#xff0c;只使用cookie 說明…

OAuth與Spring Security

摘自Wikipedia&#xff1a; OAuth &#xff08; 開放式身份驗證 &#xff09;是一種開放式身份驗證標準。 它允許用戶與其他站點共享存儲在一個站點上的私有資源&#xff08;例如照片&#xff0c;視頻&#xff0c;聯系人列表&#xff09;&#xff0c;而不必發出其憑據&#xff…

flex java 開發環境搭建_Flex+JAVA+BlazeDS開發環境配置(Java工程和Flex工程獨立)

FlexJAVABlazeDS開發環境配置(Java工程和Flex工程獨立)2019年12月07日閱讀數&#xff1a;7這篇文章主要向大家介紹FlexJAVABlazeDS開發環境配置(Java工程和Flex工程獨立),主要內容包括基礎應用、實用技巧、原理機制等方面&#xff0c;希望對大家有所幫助。[url]http://blog.csd…

1251 括號(遞歸小練)

1251 括號 時間限制: 1 s空間限制: 128000 KB題目等級 : 黃金 Gold題目描述 Description計算乘法時&#xff0c;我們可以添加括號&#xff0c;來改變相乘的順序&#xff0c;比如計算              X1, X2, X3, X4, …, XN的積&#xff0c;可以 (X1(X2(X3(X4(...(XN-1…

zabbix_agentd.conf配置文件詳解

Aliaskey的別名&#xff0c;例如 Aliasttlsa.userid:vfs.file.regexp[/etc/passwd,^ttlsa:.:([0-9]),,,,\1]&#xff0c; 或者ttlsa的用戶ID。你可以使用key&#xff1a;vfs.file.regexp[/etc/passwd,^ttlsa:.: ([0-9]),,,,\1]&#xff0c;也可以使用ttlsa.userid。備注: 別名不…

在運行時修補Java

本文將重點介紹如何解決與第三方庫相關的問題 不能被規避 難以排除/繞過/替換 只需不提供錯誤修正 在這種情況下&#xff0c;解決問題仍然是一項艱巨的任務。 作為這種情況的誘因&#xff0c;請考慮對“哈希索引”數據結構的攻擊&#xff0c;例如java.util.Hashtable和java…

php return直接輸出,PHP中return用法詳細解讀

原標題&#xff1a;PHP中return用法詳細解讀在大部分編程語言中&#xff0c;return關鍵字可以將函數的執行結果返回&#xff0c;PHP中return的用法也大同小異&#xff0c;對初學者來說&#xff0c;掌握PHP中return的用法也是學習PHP的一個開始。首先&#xff0c;它的意思就是返…

并行執行,沒用到過,寫到這里免得搞忘

/// <summary>/// /// </summary>class Program{static void Main(string[] args){simultaneous();Console.ReadKey();}static void simultaneous(){//盡可能并行執行提供的每個操作Parallel.Invoke(() > ComplexMethod("1"),() > ComplexMethod(&…

UIViewController生命周期

UIViewController生命周期 UIViewController生命周期 posted on 2016-04-07 20:15 相而勿絕 閱讀(...) 評論(...) 編輯 收藏 轉載于:https://www.cnblogs.com/fmdxiangdui/p/5365249.html

Spring的REST分頁

這是有關使用Spring 3.1和Spring Security 3.1和基于Java的配置來建立安全的RESTful Web Service的系列文章的第七篇。 本文將重點介紹RESTful Web服務中的分頁實現 。 REST with Spring系列&#xff1a; 第1部分– 使用Spring 3.1和基于Java的配置引導Web應用程序 第2部分–…

眾籌源碼 php,助創cms眾籌源碼系統v1.0

什么是助創cms眾籌系統?使用“預約團購”的眾籌方式給自己的創意爭取大家的關注和支持&#xff0c;是近年來非常火熱的一種融資模式&#xff0c;助創cms眾籌系統可以10分鐘幫你打造一個和京東眾籌一樣的平臺&#xff0c;包含產品眾籌和公益眾籌兩個部分&#xff0c;可以直接拿…

Linq to SQL 的增刪改查操作

Linq&#xff0c;全稱Language Integrated Query&#xff0c;作為C#3.0新語法&#xff0c;是C#語言的一個擴展&#xff0c;可以將數據查詢直接集成到編程語言本身中。 Linq表達式和SQL語句差不多&#xff0c;說白了就是顛倒sql語法&#xff0c; from where select ...&#xff…

擴展您的JPA POJO

可擴展性是許多體系結構的重要特征。 它衡量是否容易&#xff08;或困難&#xff09; 它是在不影響現有核心系統功能的情況下添加或更改功能。 讓我們舉一個簡單的例子。 假設您的公司擁有一個核心產品來跟蹤體育俱樂部中的所有用戶。 在您的產品體系結構中&#xff0c;您有一個…