欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

spring簡單MVC實現(xiàn)方法(URL映射及其參數(shù)使用、查詢(id、其他參數(shù))、增加)

 更新時間:2024年01月31日 11:49:58   作者:怎么肥四嘞  
這篇文章主要介紹了spring簡單MVC實現(xiàn)方法(URL映射及其參數(shù)使用、查詢(id、其他參數(shù))、增加),方法參數(shù)使用包括在無注解下獲取參數(shù),使用@RequestParam 獲取參數(shù)的方法,每種方法講解的非常詳細,需要的朋友可以參考下

一、方法參數(shù)使用

1.在無注解下獲取參數(shù)
在沒有注解的情況下,Spring MVC 也可以獲取參數(shù),且參數(shù)允許為空,唯一的要求是參
數(shù)名稱和 HTTP 請求的參數(shù)名稱保持一致。

@Controller
@RequestMapping("/my")
public class MyController{
@GetMapping("/no/annotation")
@ResponseBody
public Map<String,Object> noAnnotation(Integer intVal,Long longVal,String str){
 Map<String,Object> map = new HashMap();
 map.put("intVal",intVal);
 map.put("longVal",longVal);
 map.put("str",str);
 return map;
}}

2. 使用@RequestParam 獲取參數(shù)
在方法參數(shù)中使用了注解@RequestParam,其目的是指定 HTTP 參數(shù)和方法的映射關(guān)系,這樣處理器會按照其配置的映射關(guān)系來得到參數(shù),然后調(diào)用控制器的方法。
注意:如果把 3 個 HTTP 參數(shù)中的任意一個刪去,就會得到異常報錯的信息。

@RequestMapping("annotation")
@ResponseBody
public Map<String,Object> requestParam(@RequestParam("int_Val")  Integer intVal,@RequestParam("long_Val") Long longVal,@RequestParam("str_Val") String str){
Map<String,Object> map = new HashMap();
map.put("intVal",intVal);
map.put("longVal",lngVal);
map.put("str",str);
return map;
}

3.傳遞數(shù)組

@RequestMapping("/requestArray")
@ResponseBody
public Map<String, Object> requestArray(Integer [] intArr,
Long [] longArr, String [] strArr) {
Map<String, Object> paramsMap = new HashMap();
paramsMap.put("intArr", intArr);
paramsMap.put("longArr", longArr);
paramsMap.put("strArr", strArr);
return paramsMap;
}

4.格式化獲取參數(shù)
/WEB-INF/jsp/format/formatter.jsp

<%@ page pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>格式化</title>
</head>
<body>
<form action="./commit" method="post">
<table>
<tr>
<td>日期(yyyy-MM-dd)</td>
<td><input type="text" name="date" value="2017-08-08"
/></td>
</tr>
<tr>
<td>金額(#,###.##)</td>
<td><input type="text" name="number" value="1,234,567.89"
/></td>
</tr>
<tr>
<td colspan="2" align="right"><input type="submit" value="
提交" />
</td>
</tr>
</table>
</form>
</body>
</html>

controller.java

@PostMapping("/format/commit")
@ResponseBody
public Map<String, Object> format(
@DateTimeFormat(iso=ISO.DATE) Date date,
@NumberFormat(pattern="#,###.###") Double number
){
Map<String, Object> dataMap=new HashMap();
dataMap.put("date", date);
dataMap.put("number", number);
return dataMap;
}

二、MVC的增、查

1.pom.xml
加入parent、web、jstl、servlet、tomcat、jasper坐標(可以參考我之前寫過的pom.xml)
這次再寫入熱部署:當項目啟動狀態(tài)時,修改靜態(tài)文件并保存后,不需要重啟項目來達到使靜態(tài)文件生效的目的。

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>

2.jsp
這次需要用到j(luò)s和easyui框架(見文章末尾源碼),我們就可以在此基礎(chǔ)上添加jsp,展現(xiàn)更漂亮的前端
src/main/webapp/WEB-INF/jsp/user/XXX.jsp
add.jsp

<%@ page pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>新增用戶</title>
<!-- 加載Query文件-->
<script type="text/javascript" src="/js/jquery-3.2.1.js">
</script>
<script type="text/javascript">
$(document).ready(function(){
    $("#submit").click(function() {
    	var id=$("#id").val();
        var userName=$("#userName").val();
        var note=$("#note").val();
        if ($.trim(userName)=='') {
            alert("用戶名不能為空!");
            return;
        }
        var params = {
        	id:id,
            userName:userName,
            note:note
        };
        $.post({
            url:"./insert",
            // 此處需要告知傳遞參數(shù)類型為JSON,不能缺少
            contentType:"application/json",
            // 將JSON轉(zhuǎn)化為字符串傳遞
            data:JSON.stringify(params),
            // 成功后的方法
            success:function(result){
                if(result==null||result.id==null) {
                  alert("插入失敗");
                  return;
                }
                alert("插入成功"+result.userName+">>"+result.note);
                window.location.href="./details1" rel="external nofollow" ;
            }
        });
   });
});
</script>
</head>
<body>
    <div style="margin: 20px 0;"></div>
    <form id="insertForm">
        <table>
            <tr>
                <td>id編號:</td>
                <td><input id="id" name="id"></td>
            </tr>
            <tr>
                <td>用戶名稱:</td>
                <td><input id="userName" name="userName"></td>
            </tr>
            <tr>
                <td>備注</td>
                <td><input id="note" name="note"></td>
            </tr>
            <tr>
                <td></td>
                <td align="right"><input id="submit" type="button" value="提交" /></td>
            </tr>
        </table>
    </form>
</body>

details1.jsp

<%@ page pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
    <head>
        <title>用戶詳情</title>
    </head>
    <body>
    
        <div align="center">
            <table border="1">
                <tr>
                    <td>用戶編號</td>
                    <td>用戶姓名</td>
                    <td>備注信息</td>
                </tr>
                <c:forEach items="${users1}" var="user">
                <tr>
                   <td><c:out value="${user.id}"/></td>                       
                   <td><c:out value="${user.userName}"/></td>               
                   <td><c:out value="${user.note}"/></td>
                </tr>
                </c:forEach>
            </table>
        </div>
    </body>
</html>

details.jsp

<%@ page pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
    <head>
        <title>用戶詳情</title>
    </head>
    <body>
        <div align="center">
            <table border="1">
                <tr>
                    <td>標簽</td>
                    <td>值</td>
                </tr>
                <tr>
                    <td>用戶編號</td>
                    <td><c:out value="${user.id}"></c:out></td>
                </tr>
                <tr>
                    <td>用戶名稱</td>
                    <td><c:out value="${user.userName}"></c:out></td>
                </tr>
                <tr>
                    <td>用戶備注</td>
                    <td><c:out value="${user.note}"></c:out></td>
                </tr>
            </table>
        </div>
    </body>
</html>

table.jsp

<%@ page pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用戶列表</title>
<link rel="stylesheet" type="text/css"
	href="../../easyui/themes/default/easyui.css" rel="external nofollow" >
<link rel="stylesheet" type="text/css"
	href="../../easyui/themes/icon.css" rel="external nofollow" >
<link rel="stylesheet" type="text/css" href="../../easyui/demo/demo.css" rel="external nofollow" >
<script type="text/javascript" src="../../easyui/jquery.min.js"></script>
<script type="text/javascript" src="../../easyui/jquery.easyui.min.js"></script>
<script type="text/javascript">
	// 定義事件方法
	function onSearch() {
		// 指定請求路徑
		var opts = $("#dg").datagrid("options");
		opts.url = "./list3";
		// 獲取查詢參數(shù)
		var userName = $("#userName").val();
		var note = $("#note").val();
		// 組織參數(shù)
		var params = {};
		if (userName != null && userName.trim() != '') {
			params.userName = userName;
		}
		if (note != null && note.trim() != '') {
			params.note = note;
		}
		// 重新載入表格數(shù)據(jù)
		$("#dg").datagrid('load', params);
	}
</script>
</head>
<body>
	<div style="margin: 20px 0;"></div>
	<div class="easyui-layout" style="width: 100%; height: 350px;">
		<div data-options="region:'north'" style="height: 50px">
			<form id="searchForm" method="post">
				<table>
					<tr>
						<td>用戶名稱:</td>
						<td><input id="userName" name="userName"
							class="easyui-textbox" data-options="prompt:'輸入用戶名稱...'"
							style="width: 100%; height: 32px"></td>
						<td>備注</td>
						<td><input id="note" name="note" class="easyui-textbox"
							data-options="prompt:'輸入備注...'" style="width: 100%; height: 32px">
						</td>
						<td><a href="#" rel="external nofollow"  class="easyui-linkbutton"
							data-options="iconCls:'icon-search'" style="width: 80px"
							onclick="onSearch()">查詢</a></td>
					</tr>
				</table>
			</form>
		</div>
		<div data-options="region:'center',title:'用戶列表',iconCls:'icon-ok'">
			<table id="dg" class="easyui-datagrid"
data-options="border:false,singleSelect:true,
fit:true,fitColumns:true">
				<thead>
					<tr>
						<th data-options="field:'id'" width="80">編號</th>
						<th data-options="field:'userName'" width="100">用戶名稱</th>
						<th data-options="field:'note'" width="80">備注</th>
					</tr>
				</thead>
				<tbody>
					<!--使用forEache渲染數(shù)據(jù)模型-->
					<c:forEach items="${userList}" var="user">
						<tr>
							<td>${user.id}</td>
							<td>${user.userName}</td>
							<td>${user.note}</td>
						</tr>
					</c:forEach>
				</tbody>
			</table>
		</div>
	</div>
</body>

3.實體pojo類

public class User {
	private Integer id;
	private String userName;
	private String note;
	get、set方法
	}

4.Dao層
IUserDao.java

public interface IUserDao {
   public User getUserById(Integer id);//通過id查找
   public User getUserByName(String uname);//通過用戶名查找
   public Boolean insertUser(User user);//增加用戶
   public List<User> findAllUser();//查找
   public List<User> findUsers(String userName,String note);//通過用戶名和備注查找
}

UserDaoImpl.java

@Repository
public class UserDaoImpl implements IUserDao {
    public List<User> users=new ArrayList<User>();
	public UserDaoImpl() {
		super();
		users.add(new User(1,"user_name_1","note1"));
		users.add(new User(2,"user_name_2","note2"));
		users.add(new User(3,"user_name_3","note3"));
	}
@Override
	public User getUserByName(String uname) {
		// TODO Auto-generated method stub
		System.out.println(uname);
		for(User user:users) {
			if(user.getUserName().equals(uname)) {
				return user;
			}
		}
		return null;
	}
@Override
	public Boolean insertUser(User user) {
		// TODO Auto-generated method stub
		Boolean flag=false;
		System.out.println(user.getUserName()+">>"+user.getNote());
		users.add(user);
		flag=true;
		return flag;
	}
......
}

5.service層
IUserService.java

public interface IUserService {
   public User getUserById(Integer id);
   public Boolean insertUser(User user);
   public List<User> findAllUser();
   public List<User> findUsers(String userName,String note); 
}

UserServiceImpl.java

@Service
public class UserServiceImpl implements IUserService {
	@Autowired
    private IUserDao userDao;
	@Override
	public User getUserById(Integer id) {
		// TODO Auto-generated method stub
		return userDao.getUserById(id);
	}
	@Override
	public List<User> findAllUser() {
		// TODO Auto-generated method stub
		return userDao.findAllUser();
	}
	@Override
	public Boolean insertUser(User user) {
		Boolean flag=false;
		System.out.println(user.getUserName()+">>"+user.getNote());
		flag=userDao.insertUser(user);
		return flag;
	}
	......
	}

6.UserController.java

@Controller
@RequestMapping("user")
public class UserController {
	@Autowired
	private IUserService userService;
    //1.按ID查詢,顯示結(jié)果JSON格式
	@RequestMapping("/getUser1")
	@ResponseBody
	public User getUser(Integer id) {
		User user = userService.getUserById(id);
		return user;
	}
	//2.按ID查詢,顯示結(jié)果JSP
	@RequestMapping("getUser3")
	public ModelAndView getUser3(Integer id) {
		User user1 = userService.getUserById(id);
		ModelAndView mv = new ModelAndView();
		mv.setViewName("user/details");
		mv.addObject("user", user1);
		return mv;
	}
/**
	 * 3.新增用戶,添加信息頁面
	 */
	@GetMapping("add")
	public String add() {
		return "/user/add";
	}
	/**
	 * 4. 新增用戶  處理
	 * 
	 * @param user 通過@RequestBody注解得到JSON參數(shù)
	 * @return 返回添加的用戶信息
	 */
	@PostMapping("/insert")
	@ResponseBody
	public User insert(@RequestBody User user) {
		userService.insertUser(user);
		return user;
	}
/*
	 * 5. 查詢多個用戶數(shù)據(jù) jsp顯示
	 */
	@RequestMapping("/details1")
	public ModelAndView findAllUsers() {
		List<User> users = new ArrayList<User>();
		users = userService.findAllUser();
		ModelAndView mv = new ModelAndView();
		mv.setViewName("user/details1");
		mv.addObject("users1", users);
		return mv;
	}
	/*
	 * 6. 查詢多個用戶數(shù)據(jù) JSON格式顯示
	 */
	@RequestMapping("/list")
	@ResponseBody
	public List<User> list() {
		List<User> users = new ArrayList<User>();
		users = userService.findAllUser();
		return users;
		//7. 通過URL傳遞參數(shù),{ ...}表明參數(shù)的位置和名稱。該例指定名稱為id
	@RequestMapping("/{id}")
	// 響應(yīng)為JSON數(shù)據(jù)集
	@ResponseBody
	// @PathVariable 通過參數(shù)名稱獲取參數(shù)
	public User getUser1(@PathVariable("id") Integer id) {
		return userService.getUserById(id);
	}
	/** 8.  URL路徑匹配:多個參數(shù)查詢
	 *    注解  @PathVariable 用于從請求URL中獲取參數(shù)并映射到方法參數(shù)中
	 * @param userName
	 * @param note
	 * @return
	 */
	@RequestMapping("/list1/{userName}/{note}")
	@ResponseBody
	public List<User> getUserByNameAndNote(@PathVariable("userName") String userName,@PathVariable("note") String note){
		return userService.findUsers(userName, note);
	}
	/**  9.EasyUI框架 ——進入首頁面,查詢所有的用戶
	 * @return table.jsp頁面
	 */
	@RequestMapping("table")
	public ModelAndView table() {
		List<User> users=userService.findAllUser();
		ModelAndView mv = new ModelAndView();
		mv.setViewName("/user/table");
		mv.addObject("userList", users);
		return mv;
	}
	/**  10. EasyUI框架 ——按條件查詢用戶信息 
	 *   注意@RequestParam(value="userName",required=false)的使用 
	 * @param userName
	 * @param note
	 * @return
	 */
	@RequestMapping("list3")
	@ResponseBody
	public List<User> list3(
			@RequestParam(value="userName",required=false) 
	        String userName,
	        @RequestParam(value="note",required=false) String note) {
		List<User> users=userService.findUsers(userName, note);
		return users;
	}
}

7.App.java

8.src/main/resources/application.properties

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

9.成果展示

源碼:http://xiazai.jb51.net/202401/yuanma/chapter_jb51.rar

到此這篇關(guān)于spring-簡單MVC實現(xiàn)(URL映射及其參數(shù)使用、查詢(id、其他參數(shù))、增加)的文章就介紹到這了,更多相關(guān)spring MVC實現(xiàn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中BEAN與EJB的區(qū)別淺析

    Java中BEAN與EJB的區(qū)別淺析

    這篇文章主要介紹了Java中BEAN與EJB的區(qū)別淺析,本文總結(jié)了它們之間的不同之處,需要的朋友可以參考下
    2015-03-03
  • Spring Boot實現(xiàn)通用的接口參數(shù)校驗

    Spring Boot實現(xiàn)通用的接口參數(shù)校驗

    本文介紹基于 Spring Boot 和 JDK8 編寫一個 AOP ,結(jié)合自定義注解實現(xiàn)通用的接口參數(shù)校驗。具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 深入理解Spring事務(wù)原理

    深入理解Spring事務(wù)原理

    這篇文章主要帶領(lǐng)大家深入理解Spring事務(wù)原理,Spring事務(wù)的傳播屬性
    2016-07-07
  • Springboot中使用Filter實現(xiàn)Header認證詳解

    Springboot中使用Filter實現(xiàn)Header認證詳解

    這篇文章主要介紹了Springboot中使用Filter實現(xiàn)Header認證詳解,當在?web.xml?注冊了一個?Filter?來對某個?Servlet?程序進行攔截處理時,它可以決定是否將請求繼續(xù)傳遞給?Servlet?程序,以及對請求和響應(yīng)消息是否進行修改,需要的朋友可以參考下
    2023-08-08
  • java?io文件操作刪除文件或文件夾的7種方法

    java?io文件操作刪除文件或文件夾的7種方法

    這篇文章主要為大家介紹了java?io文件操作刪除文件或文件夾的7種方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • Java中使用Jedis操作Redis的示例代碼

    Java中使用Jedis操作Redis的示例代碼

    本篇文章主要介紹了Java中使用Jedis操作Redis的示例代碼,具有一定的參考價值,有興趣的可以了解一下。
    2016-12-12
  • Java超詳細講解類變量和類方法

    Java超詳細講解類變量和類方法

    這篇文章主要介紹了JAVA類變量及類方法代碼實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-05-05
  • 簡單實現(xiàn)Java版學(xué)生管理系統(tǒng)

    簡單實現(xiàn)Java版學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細介紹了簡單實現(xiàn)Java版學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • SpringBoot中整合消息服務(wù)組件的方法

    SpringBoot中整合消息服務(wù)組件的方法

    本文介紹了消息服務(wù)組件的基本概念,以及如何在SpringBoot中整合常見的消息服務(wù)組件,如ActiveMQ、RabbitMQ和Kafka,我們探討整合消息服務(wù)組件在實際應(yīng)用場景中的優(yōu)勢,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • SpringBoot集成Redis的實現(xiàn)示例

    SpringBoot集成Redis的實現(xiàn)示例

    這篇文章主要介紹了SpringBoot集成Redis的實現(xiàn)示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11

最新評論