本章目标
掌握表达式输出对象的操作;
掌握表达式语言的实际作用,并结合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设计模式将发挥更大的作用。
相关推荐
在JavaServer Pages (JSP) 2.0版本中引入了一项重要的新特性,即表达式语言(EL),它极大地简化了在JSP页面中访问JavaBean属性和表达式求值的方式。EL提供了一种简洁、易于阅读的语法,使得开发者可以更高效地处理...
表达式语言(EL)是JSP技术中的一项重要特性,它极大地简化了数据访问和显示的过程,增强了代码的可读性和可维护性,特别是在MVC架构中,EL的使用能够更好地分离模型、视图和控制器的职责,提高Web应用的开发效率和...
JSP2.0表达式语言(Expression Language,简称EL)是JavaServer Pages规范的一部分,旨在简化开发者在JSP页面中访问Java对象的过程。相较于传统的JSP脚本元素,EL提供了更为直观、简洁的语法,使得Web开发人员能够...
标题中的“为java_web项目添加spring_MVC框架(JSTL表达式)”指的是在Java Web开发中集成Spring MVC框架,并利用JSTL(JavaServer Pages Standard Tag Library)进行页面表达式的处理。Spring MVC是Spring框架的一个...
10.4、在MVC中应用表达式语言 10.5、运算符 10.6、本章摘要 10.7、开发实战讲解(基于Oracle数据库) 第11章 Tomcat数据源 11.1、数据源操作原理 11.2、在Tomcat中使用数据库连接池 11.3、查找数据源 ...
10.4、在MVC中应用表达式语言 10.5、运算符 10.6、本章摘要 10.7、开发实战讲解(基于Oracle数据库) 第11章 Tomcat数据源 11.1、数据源操作原理 11.2、在Tomcat中使用数据库连接池 11.3、查找数据源 11.4、...
Spring 3表达式语言(Expression Language,简称SpEL)是Spring框架中的一个重要组成部分,它提供了一种强大且灵活的方式来在运行时查询和操作对象图。SpEL被广泛应用于配置文件、注解以及Spring的其他组件中,使得...
**标题解析:** "表达式计算器(MVC版本)" 指的是一个基于MVC(Model-View-Controller)设计模式的计算器应用。MVC是一种软件架构模式,常用于Web开发,将应用程序分为三个主要组件:模型(Model)处理数据,视图...
**JSP表达式语言(Expression Language,EL)是Java服务器页面(JSP)技术中的一个重要组成部分,用于在JSP页面中简洁、高效地访问JavaBean属性和表达计算逻辑。EL提供了一种简单的方式来检索和设置Java对象的属性,...
在JavaServer Faces(JSF)框架中,EL是默认的表达式语言,用于在视图层和模型层之间传递数据,大大简化了JSF组件的属性绑定。 **八、EL的版本和特性** EL有多个版本,从EL 1.0到EL 3.0,每个版本都引入了新的特性...
总的来说,`CultureAwareDemo`项目提供了一个全面的示例,展示了如何在ASP.NET MVC3中集成多语言、Entity Framework数据操作以及MVCPager分页功能。通过研究此DEMO,开发者可以快速上手构建自己的多语言、数据驱动的...
在Struts2框架中,OGNL作为核心表达式语言,扮演着连接Action对象与视图层的关键角色。 首先,OGNL将Action对象和其他数据压入一个名为ValueStack的结构中,这个ValueStack类似于一个遵循堆栈原则的List,但具备更...
- **Spring表达式语言**:引入了一种新的表达式语言,可用于XML和注解配置中。 - **RESTful Web服务支持**:增强了对RESTful Web服务的支持。 - **数据格式化**:支持注解驱动的数据格式化,如日期和货币格式。 - **...
OGNL,全称为Object-Graph Navigation Language,是一种功能强大的表达式语言,它在Java开发领域中被广泛用于获取、设置对象属性以及执行对象的方法。OGNL的强大之处在于其能够灵活地处理复杂的对象图导航,使得数据...
EL表达式是Java EE中的一种内建的脚本语言,用于在JSP页面中访问JavaBean或其他数据源中的数据。它使用一种简洁的语法,例如`${expression}`,允许开发者直接在页面上进行数据的读取和赋值。EL表达式支持多种运算符...
本教程将深入探讨JSP表达式语言的语法、优点及其在实际开发中的应用。 **1. JSP表达式语言基础** JSP EL的语法结构通常以`${}`包裹,例如`${expression}`。它能够直接在JSP页面的任何位置插入动态内容,如HTML标签...
EL(Expression Language)是JSP 2.0中引入的表达式语言,用于在JSP页面中访问JavaBean的属性。 知识点6:JSTL标签库 JSTL(JavaServer Pages Standard Tag Library)是JSP的标准标签库,提供了一些常用的标签,...
Thymeleaf提供了强大的表达式语言,使得开发者可以轻松地在模板中访问模型数据。Thymeleaf的模板文件可以是HTML、XML、TEXT、JAVASCRIPT、CSS等多种格式。 资源定位 在Spring Web MVC框架中,资源定位是通过...