`
chaoyi
  • 浏览: 309597 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

在MVC中应用表达式语言

 
阅读更多

本章目标
掌握表达式输出对象的操作;
掌握表达式语言的实际作用,并结合MVC设计模式应用表达式语言;

 

定义一个VO类 —— Dept.java

package cn.demo.ov;

public class Dept {
	private int deptno;
	private String dname;
	private String loc;
	
	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;
	}
	public String getLoc() {
		return loc;
	}
	public void setLoc(String loc) {
		this.loc = loc;
	}
}

 

将此对象保存在属性范围中,通过表达式语言输出

<%@ page language="java" contentType="text/html" pageEncoding="utf-8" import="cn.demo.ov.*"%>
<html>
<head>
<title>将此对象保存在属性范围中,通过表达式语言输出</title>
</head>
<body>
<%
	Dept dept=new Dept();//实例化VO对象
	dept.setDeptno(10);//设置deptno属性
	dept.setDname("chaoyi");//设置dname属性
	dept.setLoc("阅谁问君诵,水落清香浮。");//设置loc属性
	request.setAttribute("deptinfo", dept);//设置request属性
 %>
 <h3>部门编号:${deptinfo.deptno}</h3>
 <h3>部门名称:${deptinfo.dname}</h3>
 <h3>部门位置:${deptinfo.loc}</h3>
</body>
</html>

 

效果图:

 

使用MVC传递集合
一个JSP程序中应该只包含三类代码:接收属性、判断、输出,而且在JSP中最好只导入一个java.util包,所以此时要输出一个集合的话,那么还是要依靠Iterator完成,通过Iterator找出集合中的每一个元素,但表达式语言只能操作四种属性范围中的内容,所以就可以将每一个取出的对象(Object)存放在page范围中(因为每一个要输出的内容只在本页有效),之后再通过表达式输出即可

 

编写Servlet传递request属性

package cn.demo.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.demo.ov.Dept;

public class ELServlet extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		Dept dept=new Dept();//实例化VO对象
		dept.setDeptno(10);//设置deptno属性
		dept.setDname("chaoyi");//设置dname属性
		dept.setLoc("阅谁问君诵,水落清香浮。");//设置loc属性
		request.setAttribute("deptinfo", dept);//设置request属性
		request.getRequestDispatcher("demo2.jsp").forward(request, response);//设置服务器跳转传递request属性
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doGet(request, response);//调用doGet()
	}
}

 

配置web.xml

  <servlet>
  	<servlet-name>EServlet</servlet-name>
  	<servlet-class>cn.demo.servlet.ELServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>EServlet</servlet-name>
  	<url-pattern>/031004/ELServlet</url-pattern><!-- 页面的映射路径 -->
  </servlet-mapping>

 

接收 request 属性并输出

 

<%@ page language="java" contentType="text/html" pageEncoding="utf-8" import="cn.demo.ov.*"%>
<html>
<head>
<title>接收 request 属性并输出</title>
</head>
<body>
 <h3>部门编号:${deptinfo.deptno}</h3>
 <h3>部门名称:${deptinfo.dname}</h3>
 <h3>部门位置:${deptinfo.loc}</h3>
</body>
</html>

 

效果图:

  

定义Servlet传递集合

package cn.demo.servlet;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.demo.ov.Dept;

public class ELListServlet extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		List<Dept> all=new ArrayList<Dept>();//实例化List接口
		Dept dept=null;//定义Dept对象
		dept=new Dept();//实例化OV对象
		dept.setDeptno(10);//设置deptno属性
		dept.setDname("chaoyi");//设置dname属性
		dept.setLoc("阅谁问君诵,水落清香浮。");//设置loc属性
		all.add(dept);//向集合中增加dept属性
		dept=new Dept();//实例化OV对象
		dept.setDeptno(11);//设置deptno属性
		dept.setDname("chaoyv");//设置dname属性
		dept.setLoc("夜半钟声镜雨来。");//设置loc属性
		all.add(dept);//向集合中增加dept属性
		request.setAttribute("alldept", all);//设置request属性
		request.getRequestDispatcher("demo3.jsp").forward(request, response);//设置服务器跳转传递request属性
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doGet(request, response);//调用doGet()
	}
}

 

配置web.xml

  <servlet>
  	<servlet-name>ELListServlet</servlet-name>
  	<servlet-class>cn.demo.servlet.ELListServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>ELListServlet</servlet-name>
  	<url-pattern>/031004/ELListServlet</url-pattern><!-- 页面的映射路径 -->
  </servlet-mapping> 

 

使用表达式输出集合

<%@page import="java.util.Iterator"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html" pageEncoding="utf-8" import="cn.demo.ov.*"%>
<html>
<head>
<title>使用表达式输出集合</title>
</head>
<body>
<%
	List all=(List)request.getAttribute("alldept");//接收List集合
	if(all!=null){//判断是否为空
%>
	<table border="1" width="30%">
		<tr>
			<td>部门编号</td>
			<td>部门名称</td>
			<td>部门位置</td>
		</tr>
<%
		Iterator iter=all.iterator();//实例化Iterator对象
		while(iter.hasNext()){//迭代输出
			pageContext.setAttribute("dept", iter.next());//设置page属性
%>
		<tr>
			<td>${dept.deptno}</td>
			<td>${dept.dname}</td>
			<td>${dept.loc}</td>
		</tr>
<% 		
		}
 %>
	</table>
<% 	
	}
 %>
</body>
</html>

 

效果图:

 

小结
表达式语言可以方便的进行对象属性的输出;
通过表达式语言输出集合时,需要使用page属性范围完成;
表达式结合MVC设计模式将发挥更大的作用。

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 19.5 KB
  • 大小: 20.7 KB
  • 大小: 24.5 KB
  • 大小: 72.3 KB
0
0
分享到:
评论

相关推荐

    表达式语言(EL) el表达式

    在JavaServer Pages (JSP) 2.0版本中引入了一项重要的新特性,即表达式语言(EL),它极大地简化了在JSP页面中访问JavaBean属性和表达式求值的方式。EL提供了一种简洁、易于阅读的语法,使得开发者可以更高效地处理...

    表达式语言(EL)

    表达式语言(EL)是JSP技术中的一项重要特性,它极大地简化了数据访问和显示的过程,增强了代码的可读性和可维护性,特别是在MVC架构中,EL的使用能够更好地分离模型、视图和控制器的职责,提高Web应用的开发效率和...

    jsp2.0表达式语言.pdf

    JSP2.0表达式语言(Expression Language,简称EL)是JavaServer Pages规范的一部分,旨在简化开发者在JSP页面中访问Java对象的过程。相较于传统的JSP脚本元素,EL提供了更为直观、简洁的语法,使得Web开发人员能够...

    为java_web项目添加spring_MVC框架(JSTL表达式)

    标题中的“为java_web项目添加spring_MVC框架(JSTL表达式)”指的是在Java Web开发中集成Spring MVC框架,并利用JSTL(JavaServer Pages Standard Tag Library)进行页面表达式的处理。Spring MVC是Spring框架的一个...

    李兴华Java Web开发实战经典.pdf (高清版) Part1

    10.4、在MVC中应用表达式语言 10.5、运算符 10.6、本章摘要 10.7、开发实战讲解(基于Oracle数据库) 第11章 Tomcat数据源 11.1、数据源操作原理 11.2、在Tomcat中使用数据库连接池 11.3、查找数据源 ...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    10.4、在MVC中应用表达式语言 10.5、运算符 10.6、本章摘要 10.7、开发实战讲解(基于Oracle数据库) 第11章 Tomcat数据源 11.1、数据源操作原理 11.2、在Tomcat中使用数据库连接池 11.3、查找数据源 11.4、...

    pring3表达式语言共13页.pdf.zip

    Spring 3表达式语言(Expression Language,简称SpEL)是Spring框架中的一个重要组成部分,它提供了一种强大且灵活的方式来在运行时查询和操作对象图。SpEL被广泛应用于配置文件、注解以及Spring的其他组件中,使得...

    表达式计算器(MVC版本)

    **标题解析:** "表达式计算器(MVC版本)" 指的是一个基于MVC(Model-View-Controller)设计模式的计算器应用。MVC是一种软件架构模式,常用于Web开发,将应用程序分为三个主要组件:模型(Model)处理数据,视图...

    JSP表达式语言的帮助文档

    **JSP表达式语言(Expression Language,EL)是Java服务器页面(JSP)技术中的一个重要组成部分,用于在JSP页面中简洁、高效地访问JavaBean属性和表达计算逻辑。EL提供了一种简单的方式来检索和设置Java对象的属性,...

    jsp el 表达式语言文档

    在JavaServer Faces(JSF)框架中,EL是默认的表达式语言,用于在视图层和模型层之间传递数据,大大简化了JSF组件的属性绑定。 **八、EL的版本和特性** EL有多个版本,从EL 1.0到EL 3.0,每个版本都引入了新的特性...

    MVC3多语言+ef增删查改

    总的来说,`CultureAwareDemo`项目提供了一个全面的示例,展示了如何在ASP.NET MVC3中集成多语言、Entity Framework数据操作以及MVCPager分页功能。通过研究此DEMO,开发者可以快速上手构建自己的多语言、数据驱动的...

    OGNL表达式语言浅谈.pdf

    在Struts2框架中,OGNL作为核心表达式语言,扮演着连接Action对象与视图层的关键角色。 首先,OGNL将Action对象和其他数据压入一个名为ValueStack的结构中,这个ValueStack类似于一个遵循堆栈原则的List,但具备更...

    spring3.0 MVC中文教程

    - **Spring表达式语言**:引入了一种新的表达式语言,可用于XML和注解配置中。 - **RESTful Web服务支持**:增强了对RESTful Web服务的支持。 - **数据格式化**:支持注解驱动的数据格式化,如日期和货币格式。 - **...

    OGNL - 功能强大的表达式语言

    OGNL,全称为Object-Graph Navigation Language,是一种功能强大的表达式语言,它在Java开发领域中被广泛用于获取、设置对象属性以及执行对象的方法。OGNL的强大之处在于其能够灵活地处理复杂的对象图导航,使得数据...

    EL表达式和JSTL标签的应用实例

    EL表达式是Java EE中的一种内建的脚本语言,用于在JSP页面中访问JavaBean或其他数据源中的数据。它使用一种简洁的语法,例如`${expression}`,允许开发者直接在页面上进行数据的读取和赋值。EL表达式支持多种运算符...

    完整版Java JSP web开发教程 09_JSP表达式语言(共23页).ppt

    本教程将深入探讨JSP表达式语言的语法、优点及其在实际开发中的应用。 **1. JSP表达式语言基础** JSP EL的语法结构通常以`${}`包裹,例如`${expression}`。它能够直接在JSP页面的任何位置插入动态内容,如HTML标签...

    MyEclipse使用JDBC查询数据库(MVC模式)

    EL(Expression Language)是JSP 2.0中引入的表达式语言,用于在JSP页面中访问JavaBean的属性。 知识点6:JSTL标签库 JSTL(JavaServer Pages Standard Tag Library)是JSP的标准标签库,提供了一些常用的标签,...

    第五节 Web MVC 视图应用1

    Thymeleaf提供了强大的表达式语言,使得开发者可以轻松地在模板中访问模型数据。Thymeleaf的模板文件可以是HTML、XML、TEXT、JAVASCRIPT、CSS等多种格式。 资源定位 在Spring Web MVC框架中,资源定位是通过...

Global site tag (gtag.js) - Google Analytics