EL(javaweb相关)

为了实现与用户的动态交互或者控制页面输出,需要在JSP页面中嵌入大量的Java代码。

能否在JSP页面中不使用Java代码而访问数据呢?

当然可以喽,用El就能解决这个问题!

什么是EL
EL即Expression Language(表达式语言)
EL的功能
替代JSP页面中的复杂代码
EL的语法
${  EL exprission}
${  bean.name } 或 ${  bean['name'] }

EL的特点

自动转换类型
EL得到某个数据时可以自动转换类型
对于类型的限制更加宽松
使用简单
相比较在JSP中嵌入Java代码,EL应用更简单

EL的语法

EL语法
以“${”作为开始,以“}”作为结束
直接使用变量名获取值$
${ username }
变量属性范围名称

EL中的运算符

EL运算符
运算符”[ ]”
运算符”.”
作用
获取对象属性

${user.name}  =》得到user对象的name属性        等价于${user[name]}

获取对象集合中的数据
在Session中保存了一个(list)集合users

${sessionScope.users[1]}   =》得到集合中第二位的对象

 

EL运算符

 el实际应用:

1.创建EL.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>El</title>
</head>
<body>
	<fieldset>
		<legend>
			简单字符串
		</legend>
		${str} 
		${sessionScope.welcome2} 
		${applicationScope.welcome3}
	</fieldset>
	<fieldset>
		<legend>
			特殊字符串
		</legend>
		${welcome} 
		${welcome1} 
	</fieldset>
	<fieldset>
		<legend>
			自定义对象
		</legend>
		${newstest.id},${newstest.tid},${newstest.title},${newstest.ncontent}<br/>
	</fieldset>
	<fieldset>
		<legend>
			集合
		</legend>
		${newslisttest[0].id},${newslisttest[0].tid},${newslisttest[0].title},${newslisttest[0].ncontent}<br/>
		${newslisttest[1].id},${newslisttest[1].tid},${newslisttest[1].title},${newslisttest[1].ncontent}  
	</fieldset>
	<fieldset>
		<legend>
			运算符
		</legend>
		 v+1: ${v+1}<br/>
		 v-1: ${v-1}<br/>
		 v*1: ${v*1}<br/>
		 v/1: ${v/1}<br/>
		 v/1: ${v div 1}<br/>
		 v%3: ${v % 3}<br/>
		  v%3: ${v mod 3}<br/>
		  v>2: ${v>3}<br/>
	</fieldset>
	<fieldset>
		<legend>
			测试是否为空
		</legend>
		${empty v} <br/>
		${empty v1}<br/>
		${empty v2}<br/>
		${empty v3}<br/>
		${empty v4}<br/>
		${empty v5}<br/>
	</fieldset>
</body>
</html>

2.创建ElServlet (news实体类以及业务逻辑层在此不再赘述,如需使用自行创建)

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

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

import com.xintouyun.jweb.entity.News;
import com.xintouyun.jweb.service.NewsService;
import com.xintouyun.jweb.service.impl.NewsServiceImpl;

public class ElServlet extends HttpServlet{
	public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{
		//创建session
		HttpSession session =request.getSession();
		//创建application
		ServletContext application=request.getServletContext();
		request.setAttribute("str", "hello world");
		request.setAttribute("welcome", "<font color='red'>你好</font>");
		//request.setAttribute("welcome1","<script> alert(111111) </script>");
		session.setAttribute("welcome2", "nihao");
		application.setAttribute("welcome3", "nihaoa");
		NewsService newsservice=new NewsServiceImpl();
	
		News news2=newsservice.getNews(14);
		request.setAttribute("newstest", news2);
		
		List<News> news3=newsservice.listNews();
		request.setAttribute("newslisttest", news3);
		
		request.setAttribute("v", "10");
		request.setAttribute("v1", null);
		request.setAttribute("v2", "");
		request.setAttribute("v3", new ArrayList<>());
		request.setAttribute("v3", "value4");
		
		request.getRequestDispatcher("El.jsp").forward(request, response);
		
		
	}
}

3.配置web.xml文件

        <servlet>
		<servlet-name>ElServlet</servlet-name>
		<servlet-class>com.xintouyun.jweb.servlet.ElServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>ElServlet</servlet-name>
		<!--访问servlet的路径:必须以/开头,这个/代表应用的根 -->
		<url-pattern>/ElServlet</url-pattern>
	</servlet-mapping>

配置完毕后重启tomcat服务器:

在服务器地址栏访问:http://localhost:8080/myweb/ElServlet(我的项目名字是myweb)

猜你喜欢

转载自blog.csdn.net/qq_40180411/article/details/82585107