《精通Spring MVC 4》——2.6 Spring表达式语言

2.6 Spring表达式语言

当使用“${}”语法时,我们实际上使用的是Spring表达式语言(Spring Expression Language,SpEL)。关于EL,有多个不同的变种,而SpEL是其中威力强大的一种。

表2-2是它主要特性的概览。


SpEL的用处并不仅限于视图之中,可以将它用在Spring框架的各种地方,例如,在通过@Value注解往bean中注入属性时,也可以使用SpEL。

从请求参数中获取数据
我们已经能够在视图中展现来自服务端的数据,但是,如果想获取用户的输入该怎么办呢?根据HTTP协议,有很多方式可以实现这一点,其中最简单的就是传递查询参数到URL之中。

你肯定早就知道什么是查询参数了吧,它们会位于URL的“?”字符后面,是由名称和值所组成的列表,每一项会使用“&”符号进行分割,例如:page?var1= value1&var2=value2。
可以使用这项技术要求用户提供他们的名字,再次修改HelloController类,如下所示:

@Controller
public class HelloController {

    @RequestMapping("/")
    public String hello(@RequestParam("name") String userName, Model
model) {
        model.addAttribute("message", "Hello, " + userName);
        return "resultPage";
    }
}

如果此时导航至localhost:8080/?name=Geoffroy,将会看到如图2-5所示的结果。

图2-5

默认情况下,请求参数是强制要求存在的。这意味着,如果导航至localhost:8080,那么将会看到一个错误页面。

查阅一下@RequestParam的代码,可以看到除了value属性以外,它还有其他两个可用的属性:required和defaultValue。

因此,可以修改一下代码,为其指定一个默认值或者将其设置为非必填项:

@Controller
public class HelloController {

    @RequestMapping("/")
    public String hello(@RequestParam(defaultValue = "world") String
name, Model model) {
        model.addAttribute("message", "Hello, " + name);
        return "resultPage";
    }
}

在Java 8中,我们可以不指定value参数。如果这样的话,将会使用带有注解的方法参数名称。

时间: 2024-09-14 18:30:17

《精通Spring MVC 4》——2.6 Spring表达式语言的相关文章

spring mvc开发公众号-spring mvc开发的微信公众号怎么设置验证时的URL

问题描述 spring mvc开发的微信公众号怎么设置验证时的URL 您好. 我想咨询一下用spring mvc开发的微信公众号,在填写服务器配置时的url时应该写哪些?我的项目名是:weixinGo RequestMapping是valid.do 解决方案 就写上域名/valid.do就行,然后把你这个应用的token写上,在把剩下的填完就行了 解决方案二: http://域名/valid.do/? 这样吗?

Spring MVC 开发快速入门

快速入门 这篇文章将教你快速地上手使用 Spring 框架,如果你手上有一本<Spring in Action>, 那么你最好从第三部分"Spring 在 Web 层的应用--建立 Web 层"开始看, 否则那将是一场恶梦! 首先, 我需要在你心里建立起 Spring MVC 的基本概念. 基于 Spring 的 Web 应用程序接收到 http://localhost:8080/hello.do(事实上请求路径是 /hello.do) 的请求后, Spring 将这个请求

如何通过spring mvc接收页面表单List

最近在用Spring mvc时遇到一个问题,在网上搜了很多资料.几乎没看到解决办法! 例如:当我们在做批量添加或者更新时,在Controller层接收表单数据的问题! 我们做一个对用户批量添加的实验! 用户Model: public class User { //用户名 private String username; //密码 private String password; public String getUsername() { return username; } public voi

Spring MVC的配置

Spring MVC 在Spring的体系中和JdbcTemplate互相独立,分属于不同的jar包,使用默认位置不同的spring配置文件. Spring JdbcTemplate基本上完全可以单独拿来使用.也就是说,假如你在写一个Web项目,而且你打算用纯粹的JSP来实现网页的显示.逻辑处理也完全没有任何问题,你只需要在你的JSP页面中创建Spring JdbcTemplate的对象,使用它的方法,在SpringJdbc环境下编写java的方法,让你的JSP页面去使用这些方法,一点问题没有.

带着问题学 Spring MVC 源码: 一、概述

Q:什么是 Spring MVC ? ※ Spring MVC 是 Spring Web 的一个重要模块.Spring 支持 Web 应用,Spring MVC 是对 MVC 模式的支持. Q:MVC 模式? ※ MVC 模式是种经典的软件架构,分 Model 模型.View 视图及 Controller 控制器 三种角色.架构的意图明显区分三种角色的职责,使其不相互依赖.Java 领域最经典的实现 JSP + Servlet + JavaBean,后续也陆续出来了众多优秀框架,SSH 中的 S

2015 最简单的 Spring MVC 入门教程

2015 最简单的 Spring MVC 入门教程 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. Simplest Spring MVC Hello World Example / Tutor

Spring MVC学习笔记之Hello World

1.建立WEB项目Spring MVC 2.引入jar包:             commons-logging-1.1.1             spring-aop-4.2.5.RELEASE.jar             spring-beans-4.0.0.RELEASE.jar             spring-context-4.0.0.RELEASE.jar             spring-core-4.0.0.RELEASE.jar             spr

spring mvc 框架搭建及详解

现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过要想灵活运用Spring MVC来应对大多数的Web开发,就必须要掌握它的配置及原理. 一.Spring MVC环境搭建:(Spring 2.5.6 + Hibernate 3.2.0) 1. jar包引入 Spring 2.5.6:spring.jar.spring-webmvc.jar.comm

Spring MVC基础入门

Spring MVC简介 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的. Spring Web MVC处理请求的流程: 具体执行步骤如下: 1.  首先用户发送请求到前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把

Spring MVC 挺直腰板儿说:依赖注入,我自个儿来!

研究 Spring MVC 将请求分发到 Spring 依赖注入的类实例 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 一上午时间,碰了 N 个钉子,不断地把钉子拨掉,记录一下选择的工具和方法