摘要:<%=news.getSummary() %>
<%
if(news.getPicPath() == null || news.getPicPath().equals("")){
%>
新闻图片:暂无
<%}else{ %>
<%}%>
<%=news.getContent() %>
一、问题引入
在做完分页功能之后,页面的html代码和java代码全混合到一起了,代码比较乱。
- 代码结构混乱
- 脚本与html混合,容易出错
- 代码不易于维护
可以使用EL表达式来优化程序代码,增加程序可读性。
二、EL简介
2.1EL语法
2.2EL功能
2.3EL访问作用域
上面第三行写错了,后面不要那个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() %>
修改后的代码:
<%@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.summary }
<%
if(news.getPicPath() == null || news.getPicPath().equals("")){
%>
新闻图片:暂无
<%}else{ %>
<%}%>
${news.content }
EL常用的两种表达方式:
1、获取request的参数,方式如下:
传递过来的新闻ID:${param.id }
2、在页面中获取设置的变量的参数:
${news.title }
四、删除新闻
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);
%>