一、理解EL的特点

一、问题引入

在做完分页功能之后,页面的html代码和java代码全混合到一起了,代码比较乱。

  • 代码结构混乱
  • 脚本与html混合,容易出错
  • 代码不易于维护

可以使用EL表达式来优化程序代码,增加程序可读性。

二、EL简介

2.1EL语法

一、理解EL的特点_第1张图片
image.png

2.2EL功能

一、理解EL的特点_第2张图片
image.png

2.3EL访问作用域

一、理解EL的特点_第3张图片
image.png

上面第三行写错了,后面不要那个news。
在用EL表达式之前,需要先将变量放到相应的作用域里面,也就是上面图片的第一行,这样才能使用EL表达式。
如果不写作用域的话,会从小到大依次去取值,比如上面要是只写个news的话,则会先去页面作用域里面找,然后是请求作用域,会话作用域,程序作用域,直至找到为止。

三、示例

修改前素材:


<%@page import="com.kgc.pojo.News"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@include file="../common/common.jsp" %>

    
        
        
    

<%
    int id = Integer.parseInt(request.getParameter("id"));
    News news = newsService.getNewsById(id);
    
 %>

<%=news.getTitle() %>

发布者:<%=news.getAuthor() %> 分类:新闻信息 更新时间:<%=news.getCreateDate() %>
摘要:<%=news.getSummary() %> <% if(news.getPicPath() == null || news.getPicPath().equals("")){ %> 新闻图片:暂无
<%}else{ %>
<%}%> <%=news.getContent() %>

修改后的代码:


<%@page import="com.kgc.pojo.News"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@include file="../common/common.jsp" %>

    
        
        
    

传递过来的新闻ID:${param.id }
<%
    int id = Integer.parseInt(request.getParameter("id"));
    News news = newsService.getNewsById(id);
    request.setAttribute("news", news);
 %>

${news.title }

发布者:${news.author } 分类:新闻信息 更新时间:${news.createDate }
摘要:${news.summary } <% if(news.getPicPath() == null || news.getPicPath().equals("")){ %> 新闻图片:暂无
<%}else{ %>
<%}%> ${news.content }

EL常用的两种表达方式:
1、获取request的参数,方式如下:

传递过来的新闻ID:${param.id }

2、在页面中获取设置的变量的参数:

${news.title }

发布者:${news.author } 分类:新闻信息 更新时间:${news.createDate }

四、删除新闻

newsDetailList.jsp页面:

<%@page import="com.kgc.util.PageSupport"%>
<%@page import="com.kgc.pojo.News"%>
<%@page import="java.util.List"%>
<%@page import="com.kgc.service.impl.NewsServiceImpl"%>
<%@page import="com.kgc.service.NewsService"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%--动态包含无法使用,页面报错,newsService无法使用  --%>
<%@include file="../common/common.jsp" %>



无标题文档







    
新闻分类: 新闻标题
<% //获取当前页码 String currntPage=request.getParameter("pageIndex"); if(currntPage==null) currntPage="1"; int pageIndex=Integer.parseInt(currntPage); //获取新闻记录总数量 int totalCount=newsService.getTotalCount(); //每页显示记录数 int pageSize=2; /*获取总页数*/ PageSupport pages=new PageSupport(); pages.setCurrentPageNo(pageIndex); pages.setPageSize(pageSize); pages.setTotalCount(totalCount); int totalPage=pages.getTotalPageCount(); //控制首页和末页 if(pageIndex<1) pageIndex=1; else if(pageIndex>totalPage) pageIndex=totalPage; //每页显示的新闻列表 List newsList=newsService.getPageNewsList(pageIndex, pageSize); int i=0; for(News news:newsList){ i++; %> class="admin-list-td-h2"<%} %>> <%} %>
新闻标题 作者 时间 操作
<%=news.getTitle() %> <%=news.getAuthor() %> <%=news.getCreateDate() %> 修改 删除

adminNewsDel.jsp页面:

<%@page import="com.kgc.pojo.News"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@include file="../common/common.jsp" %>


  
    
    
    My JSP 'MyJsp.jsp' starting page
    
    
    
        
    
    
    

  
  
  
  <%
    // 该页面为删除新闻的处理页面
    // (1) 获取删除新闻的id
    // (2) 调用后台方法删除对应id的新闻
    int id = Integer.parseInt(request.getParameter("id"));
    News news = new News();
    news.setId(id);
    String flag = "failed";
    if (newsService.delete(news)){
        flag = "success";
    }
    response.sendRedirect("newsDetailList.jsp?flag=" + flag);
   %>
  

你可能感兴趣的:(一、理解EL的特点)