`

javaWeb之表达式语言---应用MVC

阅读更多

1,在MVC中应用EL

EL可以通过反射的方式调用保存在属性范围中的java对象内容,比我们现在有一个这样的VO类(Dept.java):

package com.keith.elDemo;

public class Dept {
	private int deptNo;
	private String dName;

	public Dept() {
	}

	public int getDeptNo() {
		return deptNo;
	}

	public void setDeptNo(int deptNo) {
		this.deptNo = deptNo;
	}

	public String getdName() {
		return dName;
	}

	public void setdName(String dName) {
		this.dName = dName;
	}
}

 然后我在jsp中可以通过脚本设置相关内容(elTest.jsp):

	<%
	Dept dept = new Dept();
	dept.setDeptNo(1);
	dept.setdName("java");
	request.setAttribute("deptInfo",dept);
	 %>

 设置完后,我们可以这样访问(elTest.jsp):

	 部门编号:${deptInfo.deptNo }
	 部门名称:${deptInfo.dName }

 在利用EL输出对象属性的操作中实际上还是依靠java反射机制完成(可以在getter方法上加上输出,测试观察);

看下在MVC模式中怎么运用:

ElServlet:

package com.keith.elDemo;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ElServlet extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		this.doPost(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		Dept dept = new Dept();
		dept.setDeptNo(007);
		dept.setdName("Java");
		req.setAttribute("deptInfo", dept);
		req.getRequestDispatcher("elTest.jsp").forward(req, resp);
	}

}

 在web.xml:

	<servlet>
		<servlet-name>ELServlet</servlet-name>
		<servlet-class>com.keith.elDemo.ElServlet</servlet-class>
	</servlet>  
	<servlet-mapping>
		<servlet-name>ELServlet</servlet-name>
		<url-pattern>/ELServlet</url-pattern>
	</servlet-mapping>

 elTest.jsp:

	 部门编号:${deptInfo.deptNo }
	 部门名称:${deptInfo.dName }

 此时的页面只管JSP的输出,不用考虑后台是怎么运行的。

2,运算符

在表达式语言中为了方便用户的显示操作定义了许多算术运算符,关系运算符,逻辑运算符,使用这些运算符将会让JSP变得更加简洁;对于太复杂的操作还是应该在Servlet或JavaBean中完成;

No 算术运算符 描述 范例 结果
1 + 加法操作 ${1+1} 2
2 - 减法操作 ${2-1} 1
3 * 乘法操作 ${1*2} 2
4 /或div 除法操作 ${1/2}或${1 div 2} 0.5
5 %或mod 取模(余数) ${1%2}或${1 mod 2} 1

EL中还提供了6种关系运算符:

No 关系运算符 描述 范例 结果
1 ==或eq 等于 ${2 == 3 }或${2 eq 3 } false||false
2 !=或ne 不等于 ${2!=3 }或${2 ne 3 }
true||true
3 <或lt 小于 ${2<3 }或 ${2 lt 3 } true|| true
4 >或gt 大于 ${2>3 }或${2 gt 3 } false||false
5 <=或le 小于等于 ${2<=3 }或${2 le 3 } true|| true
6 >=或ge 大于等于 ${2>=3 }或${2 ge 3 } false||false

EL中提供了3种逻辑运算符:

No 逻辑运算符 描述 范例 结果
1 &&或and ${true && false }或${true and false } false
2 ||或or ${true || false }或${true or false } true
3 !或not 相反 ${!true }或${not true } false

EL中还有3种其他运算符:

No 其他运算符 描述 范例 结果
1 empty 判断是否为null ${empty deptInfo } false
2 ?: 三目运算 ${1 > 2 ? "大于":"小于" } 小于
3 () 括号运算符 ${1*(2+3) } 5
分享到:
评论

相关推荐

    JavaWeb学习资料---PDF格式.zip

    7. **Tomcat服务器**:Tomcat是最常用的JavaWeb应用服务器,学习者需要了解如何配置、部署和管理应用程序。 8. **Spring框架**:Spring是Java企业级应用的主流框架,提供了依赖注入、AOP(面向切面编程)、MVC框架...

    javaweb520-JavaWeb-master.zip

    8. **Spring框架**:Spring是JavaWeb开发中最常用的框架之一,它提供了依赖注入、AOP(面向切面编程)、事务管理等功能,简化了企业级应用的开发。 9. **MyBatis**:MyBatis是一个持久层框架,它简化了SQL操作,将...

    基于MVC模式的JavaWeb应用设计-张黎明

    ### 基于MVC模式的JavaWeb应用设计 #### 一、引言 随着互联网技术的迅猛发展,Web应用已经成为现代信息化社会不可或缺的一部分。在众多的Web开发技术中,Java以其强大的跨平台能力、丰富的类库支持以及成熟的企业级...

    JavaWeb编程打包资源--超值大礼

    JavaWeb编程是IT领域中一个重要的分支,主要涉及在Web服务器上使用Java语言进行开发,构建动态、交互式的网页应用。这份"JavaWeb编程打包资源--超值大礼"包含了全面的学习材料,特别关注JSP(JavaServer Pages)技术...

    JavaWeb-ch7-code.rar

    5. **MVC模式**:模型-视图-控制器架构,用于组织JavaWeb应用的结构。 6. **过滤器和监听器**:用于拦截请求、响应,实现全局的功能,如登录检查、字符编码转换等。 7. **JDBC**:Java Database Connectivity,Java...

    崔希凡javaweb笔记day18-day23

    崔希凡老师的JavaWeb笔记涵盖了从day18到day23的关键内容,这些知识点是学习JavaWeb开发过程中不可或缺的部分。以下是对这些知识点的详细解析: 1. **Servlet基础**(day18):Servlet是Java Web应用的核心组件,...

    崔希凡javaweb笔记day24-day28

    崔希凡老师的JavaWeb笔记涵盖了从day24到day28的内容,这五天的教程主要涉及了JavaWeb开发中的核心技术和实践应用。在JavaWeb领域,这些天的学习通常是项目开发周期中的关键阶段,涵盖了从数据库交互、Servlet编程、...

    崔希凡javaweb笔记day14-day17

    这部分内容可能涵盖JSP的基本语法、指令元素(如page、include、taglib)、脚本元素(声明、表达式、脚本let)以及EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)的使用。 Day16的课程...

    Javaweb实训项目-《贵美商城*源码》Myeclipse+MySQL

    《贵美商城*源码》是一个典型的Javaweb实训项目,主要采用了Myeclipse作为开发工具,MySQL作为后台数据库,旨在帮助初学者理解和实践Web应用程序的开发流程。这个项目涵盖了用户注册、登录、商品浏览、购买等基本...

    JavaWeb视频教程-day10

    可能涉及到JSP的九大内置对象、EL(表达式语言)和JSTL(JavaServer Pages Standard Tag Library)的使用,以及如何实现页面转发和重定向。 3. **MVC(Model-View-Controller)模式**: 这是一种设计模式,常用于JavaWeb...

    Javaweb--狂神版

    EL(Expression Language)是表达式语言,用于在JSP中直接访问JavaBean的属性。 6. **过滤器与监听器**:Filter和Listener是JavaWeb的重要组件。过滤器可以拦截请求和响应,进行预处理或后处理,如字符编码转换。...

    JavaWeb 视频教程 传智播客 第28天 共28天

    JavaWeb技术是Java编程语言在Web开发中的应用,它涵盖了从服务器端编程到与客户端交互的各种技术。这个“JavaWeb视频教程 传智播客 第28天 共28天”的系列课程,显然是一个完整的JavaWeb学习路径,旨在帮助初学者或...

    JavaWeb课程设计-个人记账系统(源码)

    在这个项目中,学生通常会学习到如何利用Java语言、Servlet、JSP、MVC架构以及数据库技术来构建一个完整的Web应用。下面我们将深入探讨这个项目中的关键知识点。 1. **Java基础**:作为JavaWeb开发的基础,理解Java...

    mvc_javaweb_servlet_

    总之,通过JavaWeb、Servlet、JSP和JavaBean,我们可以实现一个功能完善的BMI计算器应用,充分利用MVC模式的优势,实现良好的代码结构和职责划分。这样的项目不仅有助于学习JavaWeb技术,也是提升软件工程实践能力的...

    基于Javaweb+MVC的项目+留言板

    JavaWeb MVC 留言板项目是一个典型的三层架构应用程序,主要使用Java技术栈,结合Model-View-Controller设计模式来实现。在这个项目中,我们将会深入探讨以下几个关键知识点: 1. **MVC设计模式**: - **Model...

    JavaWeb视频教程-day08

    这个阶段的课程主要关注于在实际项目中常见的应用场景,包括但不限于Servlet、JSP、MVC模式以及数据库操作等。以下是一些关键知识点的详细说明: 1. **Servlet**: Servlet是Java Web应用中的服务器端组件,用于...

    内科大javaweb课设

    【内科大javaweb课设】是一个典型的Java Web项目,主要采用了传统的MVC(Model-View-Controller)架构模式。这个课设旨在让学生们实践如何构建一个完整的网上书城系统,涵盖前端展示、后端业务逻辑以及数据库设计等...

    javaweb学生信息管理系统-无样式

    【JavaWeb学生信息管理系统-无样式】是一个基于MVC(Model-View-Controller)模式的简单应用程序,专为Java初学者设计,可以在IntelliJ IDEA这样的集成开发环境中进行开发和运行。这个系统的核心目标是实现对学生...

    javaweb项目16-20

    【标题】"javaweb项目16-20"涵盖了Java Web开发的多个核心主题,这些主题对于理解和构建实际的Web应用程序至关重要。在Java Web开发中,开发者通常使用Java、JavaServer Pages (JSP)、Servlets、JavaServer Faces ...

Global site tag (gtag.js) - Google Analytics