Java表达式语言

原创 Laughing  2017-11-11 12:25  阅读 471 次 评论 0 条

表达式语言是jsp2.0出现的,使用表达式语言,可以非常方便的访问标志位(requestpageContextsessionapplication),同时可以避免页面出现过多的servlet代码。

如何访问标志位

  1. ${标志位.属性}  

如果标志位中的属性都不相同,也可以通过以下简介的代码进行访问

  1. ${属性}  

访问4种属性范围的内容

  1. <%--  
  2.   Created by IntelliJ IDEA.  
  3.   User: lisen  
  4.   Date: 2017/11/10  
  5.   Time: 下午12:43  
  6.   To change this template use File | Settings | File Templates.  
  7. --%>  
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>  
  9.   
  10. <html>  
  11.   <head>  
  12.     <title>首页</title>  
  13.     <script src="js/jquery-3.2.1.js" type="text/javascript"></script>  
  14.     <script src="css/bootstrap/js/bootstrap.js" type="text/javascript"></script>  
  15.     <link href="css/bootstrap/css/bootstrap.css" rel="stylesheet">  
  16.     <script src="js/bootstrap-fileinput/js/fileinput.js" type="text/javascript"></script>  
  17.     <link href="js/bootstrap-fileinput/css/fileinput.css" rel="stylesheet">  
  18.     <script src="js/bootstrap-fileinput/js/locales/zh.js" type="text/javascript"></script>  
  19.   </head>  
  20.   <body>  
  21.     <%  
  22.         request.setAttribute("website","www.lisen.me-request");  
  23.         pageContext.setAttribute("website","www.lisen.me-pageContext");  
  24.         session.setAttribute("website","www.lisen.me-session");  
  25.         application.setAttribute("website","www.lisen.me-application");  
  26.   
  27.     %>  
  28.       <h3>${pageScope.website}</h3>  
  29.       <h3>${requestScope.website}</h3>  
  30.       <h3>${sessionScope.website}</h3>  
  31.       <h3>${applicationScope.website}</h3>  
  32.   </body>  
  33. </html>  

获取请求的参数

定义输入参数页面
  1. <%--  
  2.   Created by IntelliJ IDEA.  
  3.   User: lisen  
  4.   Date: 2017/11/10  
  5.   Time: 下午12:43  
  6.   To change this template use File | Settings | File Templates.  
  7. --%>  
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>  
  9.   
  10. <html>  
  11.   <head>  
  12.     <title>首页</title>  
  13.     <script src="js/jquery-3.2.1.js" type="text/javascript"></script>  
  14.     <script src="css/bootstrap/js/bootstrap.js" type="text/javascript"></script>  
  15.     <link href="css/bootstrap/css/bootstrap.css" rel="stylesheet">  
  16.     <script src="js/bootstrap-fileinput/js/fileinput.js" type="text/javascript"></script>  
  17.     <link href="js/bootstrap-fileinput/css/fileinput.css" rel="stylesheet">  
  18.     <script src="js/bootstrap-fileinput/js/locales/zh.js" type="text/javascript"></script>  
  19.   </head>  
  20.   <body>  
  21.   <form action="getParam.jsp">  
  22.       <input type="text" name="website" class="form-control">  
  23.       <input type="submit" value="提交" class="btn btn-primary">  
  24.   </form>  
  25.   </body>  
  26. </html>  
获取参数页面
  1. <%--  
  2.   Created by IntelliJ IDEA.  
  3.   User: lisen  
  4.   Date: 2017/11/11  
  5.   Time: 上午11:35  
  6.   To change this template use File | Settings | File Templates.  
  7. --%>  
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>  
  9. <html>  
  10. <head>  
  11.     <title>Title</title>  
  12. </head>  
  13. <body>  
  14. <h3>${param.website}</h3>  
  15. </body>  
  16. </html>  
获取一组参数
  1. <h3>${paramValues.website[0]}</h3>  
  2. <h3>${paramValues.website[1]}</h3>  

集合操作

  1. <%  
  2.       ArrayList all = new ArrayList();  
  3.       all.add("www.lisen.me");  
  4.       request.setAttribute("all",all);  
  5.   %>  
  6.   ${all[0]}  

在MVC中应用表达式语言

定义VO类
  1. package me.lisen.JavaEEStudy;  
  2.   
  3. public class Dpt {  
  4.     private int no;  
  5.     private String name;  
  6.     private String location;  
  7.   
  8.     public String getName() {  
  9.         return name;  
  10.     }  
  11.   
  12.     public void setName(String name) {  
  13.         this.name = name;  
  14.     }  
  15.   
  16.     public int getNo() {  
  17.         return no;  
  18.     }  
  19.   
  20.     public void setNo(int no) {  
  21.         this.no = no;  
  22.     }  
  23.   
  24.     public String getLocation() {  
  25.         return location;  
  26.     }  
  27.   
  28.     public void setLocation(String location) {  
  29.         this.location = location;  
  30.     }  
  31. }  
继承Servlet类
  1. package me.lisen.JavaEEStudy;  
  2.   
  3. import com.sun.xml.internal.ws.api.WSService;  
  4.   
  5. import javax.servlet.ServletConfig;  
  6. import javax.servlet.ServletException;  
  7. import javax.servlet.annotation.WebServlet;  
  8. import javax.servlet.http.HttpServlet;  
  9. import javax.servlet.http.HttpServletRequest;  
  10. import javax.servlet.http.HttpServletResponse;  
  11. import java.io.IOException;  
  12. import java.io.PrintWriter;  
  13.   
  14. @WebServlet(name = "HelloServlet")  
  15. public class HelloServlet extends HttpServlet {  
  16.   
  17.     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  18.         this.doGet(request,response);  
  19.     }  
  20.   
  21.     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  22.       Dpt dpt = new Dpt();  
  23.       dpt.setNo(1);  
  24.       dpt.setLocation("二楼");  
  25.       dpt.setName("财务部");  
  26.       request.setAttribute("dpt",dpt);  
  27.       request.getRequestDispatcher("index.jsp").forward(request,response);  
  28.     }  
  29. }  
修改web.xml,实现映射
  1. <servlet>  
  2.         <servlet-name>hello</servlet-name>  
  3.         <servlet-class>me.lisen.JavaEEStudy.HelloServlet</servlet-class>  
  4.         <init-param>  
  5.             <param-name>website</param-name>  
  6.             <param-value>www.lisen.me</param-value>  
  7.         </init-param>  
  8.     </servlet>  
  9.     <servlet-mapping>  
  10.         <servlet-name>hello</servlet-name>  
  11.         <url-pattern>/HelloServlet</url-pattern>  
  12.     </servlet-mapping>  
本文地址:https://www.lisen.me/java-expression-language.html
版权声明:本文为原创文章,版权归 木子网 所有,欢迎分享本文,转载请保留出处!

发表评论


表情