测试JSTL_EL表达式

来源:互联网 发布:数据交换平台监控 编辑:程序博客网 时间:2024/05/01 12:53

 咨询了一下,若公司用struts1则用jstl和el得比较多,用jsp脚本的很少,因为用jsp脚本要引入一些包,相比之下JSTL_EL就比较简洁。以下是自己今天做的JSTL_EL表达式的测试:

测试JSTL_EL表达式 - 开心 - 静夜思@@@

struts-config.xml

测试JSTL_EL表达式 - 开心 - 静夜思@@@

web.xml

测试JSTL_EL表达式 - 开心 - 静夜思@@@

Group.java

测试JSTL_EL表达式 - 开心 - 静夜思@@@

        User.java

测试JSTL_EL表达式 - 开心 - 静夜思@@@

JstlElAction.java

package com.djrj.struts;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class JstlElAction extends Action {

 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
        //普通字符串
  request.setAttribute("hello","hello world");
  //结构
  Group group = new Group();
  group.setName("机构一");
  
  User u = new User();
  u.setName("张三");
  u.setAge("18");
  u.setGroup(group);
  request.setAttribute("u", u);
     //Map
  Map mapvalue = new HashMap();
  mapvalue.put("key1", "value1");
  mapvalue.put("key2", "value2");
  
  request.setAttribute("mapvalue", mapvalue);
  //字符串数组
  String[] strArray = new String[]{"a","b","c"};
  request.setAttribute("strArray", strArray);
     //输出数组对象
  User[] users = new User[10];
  for(int i = 0;i<10; i++){
   User user = new User();
   user.setName("user_"+i);
   users[i] = user; 
  }
  request.setAttribute("users",users);
  //输出list
  List userlist = new ArrayList();
  for(int i = 0; i<10; i++){
   User uu = new User();
   uu.setName("uu_" + i);
   userlist.add(uu);
  }
  request.setAttribute("userlist", userlist);
  //测试empty
  request.setAttribute("value1", null);
  request.setAttribute("value2", "");
  request.setAttribute("value3", new ArrayList());
  request.setAttribute("value4", "123456");
  
  return mapping.findForward("success");
 }

}

ceshi.jsp

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>测试jstl_el</title>
</head>
<body>
    <h1>测试jstl_el表达式</h1> 
    <hr>
    <li>普通字符串</li><br>                             
    hello(jsp脚本):<%=request.getAttribute("hello") %><br>
    hello(jstl_el):${hello}<br>
    hello(el表达式和el的隐含对象pageScope,requestScope,sessionScope,applicationScope这也是默认的顺序在没有指定的情况下。):${requestScope.hello}<br>
    <p>
    <li>结构采用.导航,也称存取器</li><br>  
     姓名:${u.name}<br>
     年龄:${u.age}<br>
     所属组:${u.group.name}<br>               
    <li>Map采用.导航,也称存取器</li><br>
    mapvalue.key1:${mapvalue.key1}<br>
    mapvalue.key2:${mapvalue.key2}<br>
    <li>字符串数组</li><br>  
    strArray[2]:${strArray[1]}<br>
    <li>数组对象</li><br>
    users[3].name:${users[2].name}<br>
    <li>输出list</li><br>
    userlist[3].name:${userlist[2].name}<br>
    <li>el表达式对运算符的支持</li><br>
    1+2=${1+2}<br>
    10/5=${10/5}<br>
    10 div 5=${10 div 5 }<br>
    10%3=${10%3}<br>
    10 mod 3=${10 mod 3 }<br>
    <!-- 
        ==/eg
        !=/ne
        </lt
        >/gt
        <=/le
        >=/ge
        &&/and
        ||/or
        !/not
        //div
        %/mod
     -->
    <li>测试empty</li><br>
    value1:${empty value1}<br>
    value2:${empty value2}<br>
    value3:${empty value3}<br>
    value4:${empty value4}<br>
</body>
</html>

index.jsp

测试JSTL_EL表达式 - 开心 - 静夜思@@@

浏览器中访问的效果:

测试JSTL_EL表达式 - 开心 - 静夜思@@@

测试JSTL_EL表达式 - 开心 - 静夜思@@@

原创粉丝点击