SPRING IN ACTION 第4版笔记-第五章BUILDING SPRING WEB APPLICATIONS-005-以path parameters的形式给action传参数(value=“{}”、@PathVariable)
一
1.以path parameters的形式给action传参数
- @Test
- public void testSpittle() throws Exception {
- Spittle expectedSpittle = new Spittle("Hello", new Date());
- SpittleRepository mockRepository = mock(SpittleRepository.class);
- when(mockRepository.findOne(12345)).thenReturn(expectedSpittle);
- SpittleController controller = new SpittleController(mockRepository);
- MockMvc mockMvc = standaloneSetup(controller).build();
- mockMvc.perform(get("/spittles/12345"))
- .andExpect(view().name("spittle"))
- .andExpect(model().attributeExists("spittle"))
- .andExpect(model().attribute("spittle", expectedSpittle));
- }
在浏览器中访问:http://localhost:8080/SpringInAction4_Chapter5_SpringMVC01/spittles/1
2.controller
- package spittr.web;
- import java.util.Date;
- import java.util.List;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import spittr.Spittle;
- import spittr.data.SpittleRepository;
- @Controller
- @RequestMapping("/spittles")
- public class SpittleController {
- private static final String MAX_LONG_AS_STRING = "9223372036854775807";
- private SpittleRepository spittleRepository;
- @Autowired
- public SpittleController(SpittleRepository spittleRepository) {
- this.spittleRepository = spittleRepository;
- }
- @RequestMapping(value="/{spittleId}", method=RequestMethod.GET)
- public String spittle(
- @PathVariable("spittleId") long spittleId,
- Model model) {
- //The model key will be spittle
- model.addAttribute(spittleRepository.findOne(spittleId));
- return "spittle";
- }
- }
在保证spittleId名称一致的情况下,可以简写
- @RequestMapping(value="/{spittleId}", method=RequestMethod.GET)
- public String spittle(
- @PathVariable long spittleId,
- Model model) {
- //The model key will be spittle
- model.addAttribute(spittleRepository.findOne(spittleId));
- return "spittle";
- }
3.view
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
- <html>
- <head>
- <title>Spitter</title>
- <link rel="stylesheet"
- type="text/css"
- href="<c:url value="/resources/style.css" />" >
- </head>
- <body>
- <div class="spittleView">
- <div class="spittleMessage"><c:out value="${spittle.message}" /></div>
- <div>
- <span class="spittleTime"><c:out value="${spittle.time}" /></span>
- </div>
- </div>
- </body>
- </html>
SPRING IN ACTION 第4版笔记-第五章BUILDING SPRING WEB APPLICATIONS-005-以path parameters的形式给action传参数(value=“{}”、@PathVariable)的更多相关文章
- SPRING IN ACTION 第4版笔记-第五章BUILDING SPRING WEB APPLICATIONS-004-以query parameters的形式给action传参数(@RequestParam、defaultValue)
一. 1.Spring MVC provides several ways that a client can pass data into a controller’s handler method ...
- SPRING IN ACTION 第4版笔记-第五章Building Spring web applications-001-SpringMVC介绍
一. 二.用Java文件配置web application 1. package spittr.config; import org.springframework.web.servlet.suppo ...
- SPRING IN ACTION 第4版笔记-第五章BUILDING SPRING WEB APPLICATIONS-007-表单验证@Valid、Error
一. Starting with Spring 3.0, Spring supports the Java Validation API in Spring MVC . No extra config ...
- SPRING IN ACTION 第4版笔记-第五章BUILDING SPRING WEB APPLICATIONS-002-Controller的requestMapping、model
一.RequestMapping 1.可以写在方法上或类上,且值可以是数组 package spittr.web; import static org.springframework.web.bind ...
- SPRING IN ACTION 第4版笔记-第五章BUILDING SPRING WEB APPLICATIONS-006-处理表单数据(注册、显示用户资料)
一.显示注册表单 1.访问资源 @Test public void shouldShowRegistration() throws Exception { SpitterRepository mock ...
- SPRING IN ACTION 第4版笔记-第五章BUILDING SPRING WEB APPLICATIONS-003-示例项目用到的类及配置文件
一.配置文件 1.由于它继承AbstractAnnotationConfigDispatcherServletInitializer,Servlet容器会把它当做配置文件 package spittr ...
- SPRING IN ACTION 第4版笔记-第七章Advanced Spring MVC-003- 上传文件multipart,配置StandardServletMultipartResolver、CommonsMultipartResolver
一.什么是multipart The Spittr application calls for file uploads in two places. When a new user register ...
- SPRING IN ACTION 第4版笔记-第七章Advanced Spring MVC-005- 异常处理@ResponseStatus、@ExceptionHandler、@ControllerAdvice
No matter what happens, good or bad, the outcome of a servlet request is a servlet response. If an e ...
- SPRING IN ACTION 第4版笔记-第七章Advanced Spring MVC-002- 在xml中引用Java配置文件,声明DispatcherServlet、ContextLoaderListener
一.所有声明都用xml 1. <?xml version="1.0" encoding="UTF-8"?> <web-app version= ...
随机推荐
- [转]在SQLServer中实现Sequence的高效方法
如果在ORACLE里面用惯了Sequence的兄弟们,要在SqlServer里实现Sequence,就会发现没有现成的Sequence对象可以Create了.那应该怎么办呢? 当然这点小问题是难不倒我 ...
- sql2008存储过程解密。
今天有一个同事在做一个项目的时候,因为现在公司不跟某一家公司合作.有一些sql的存储过程是加密,现在想打开那些存储过程来解密.故查看了一些资料终于解密成功.步骤如下: 1.需要开始DAC连接. 1.1 ...
- wpf ListBox或ListView等数据控件 绑定数据,最简单的方式
在网上很难找最简单的案例,都是一大片,看着都头疼: 试试举一反三,如果把结果赋给DataContext这个属性,那就前台需要绑定ItemsSource="{Binding}",请注 ...
- Attribute (一)
本文导读 1.概念 2.自定义一个 Attribute 概念 Attribute是一个特殊的类,我们知道 .NET 程序集 具有自描述的特性(由于元数据),Attribute和.NET的元 ...
- JAVA日历
效果图如下: import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; import ...
- 什么是SQL statement?
什么是SQL statement? 1.SQL SELECT statement - SELECT命令 REFER: What is SQL, and what are some example st ...
- 初涉GitHub
安装 访问https://help.github.com/articles/set-up-git/,选择对应OS平台.有文档参考,我的是OpenSuse. 在console中下载安装http://ww ...
- 关于aspx模板页面元素路径的问题,以及对模板页面的理解
模板页面仅是模板,它不是单独存在的页面,它的路径就是引用它的内容页面的路径. 换句话说,模板页面,只是内容页面上固定的部分. 模板页面引用了的js和CSS,内容页面就不用重新引用了 css ...
- 纯原生js移动端图片压缩上传插件
前段时间,同事又来咨询一个问题了,说手机端动不动拍照就好几M高清大图,上传服务器太慢,问问我有没有可以压缩图片并上传的js插件,当然手头上没有,别慌,我去网上搜一搜. 结果呢,呵呵...诶~又全是基于 ...
- 使用ajaxFileUpload实现异步上传图片
index.html <head runat="server"> <title></title> <script src="jq ...