您的位置:首页 > 编程语言 > Java开发

Struts 1 学习笔记-3-1(EL表达式的使用)

2008-02-11 20:16 543 查看
发现EL使用起来挺方便,至少不用<%= %>了,如果单纯使用EL不需要引入jar包,本人是将其与Struts整合使用。

1.首先是我的Struts-config.xml


<?xml version="1.0" encoding="ISO-8859-1" ?>




<!DOCTYPE struts-config PUBLIC


          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"


          "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">




<struts-config>


    <action-mappings>


        <action path="/jstlel" type="com.codedestiny.struts.JSTLELAction">


            <forward name="success" path="/jstlel.jsp"></forward>


        </action>


    </action-mappings>


    <message-resources parameter="MessageResources" />


</struts-config>





 

2.JSTLELAction.java


package com.codedestiny.struts;




import java.util.ArrayList;


import java.util.HashMap;


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 relatedGroup = new Group();


        relatedGroup.setName("SUN");


        User u = new User();


        u.setUsername("CodeDestiny");


        u.setAge(21);


        u.setRelatedGroup(relatedGroup);


        request.setAttribute("user", u);


        


        Map<String, Integer> hashMap = new HashMap<String, Integer>();


        hashMap.put("key1", 1);


        hashMap.put("key2", 2);


        request.setAttribute("map", hashMap);


        




        String[] array = new String[]...{"a", "b", "c", "d"};


        request.setAttribute("array", array);


        


        request.setAttribute("value1", "");


        request.setAttribute("value2", new ArrayList());




        request.setAttribute("value3", new int[]...{1, 2});


        


        return mapping.findForward("success");


    }


    


}



3.与之对应的jstlel.jsp


<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


<html>


  <head>


  </head>


  


  <body>


    <h1>测试EL表达式</h1>


    


    <hr>




    <li>简单的EL表达式,其用法是 $ 和 ...{ }</li><br>




    1 + 2 = $...{1 + 2} <br>




    2 × 10 = $...{2 * 10} <br>


    


    <hr>


    <li>EL表达式隐式对象:pageScope,requestScope,sessionScope,applicationScope等,如果未指定scope,它的搜索顺序是:page~application</li><br>


    hello(jsp):<%= request.getAttribute("hello") %><br>




    hello(el): $...{hello}<br>




    hello(el scope=requestScope): $...{requestScope.hello}


    


    <hr>


    <li>使用.进行导航,也称存储器</li><br>




    姓名: $...{ user.username } <br>




    年龄: $...{ user.age } <br>




    所属组: $...{ user.relatedGroup.name } <br>


    


    <hr>


    <li>使用存储器取出map中的值</li><br>




    map.key1 : $...{ map.key1 } <br>




    map.key2 : $...{ map.key2 } <br>


    


    <hr>


    <li>用[]对数组中的元素进行访问</li><br>




    array[1] : $...{ array[1] } <br>


    


    <hr>


    <li>EL支持的表达式</li><br>




    10 / 5 = $...{ 10 / 5 } <br>




    10 div 5 = $...{ 10 div 5 } <br>




    10 % 5 = $...{ 10 % 5 } <br>




    10 mod 5 = $...{ 10 mod 5 } <br>


    


    <!-- 


        == 在EL中可表示为 eq


        != 在EL中可表示为 ne


        < 在EL中可表示为 lt


        > 在EL中可表示为 gt


        <= 在EL中可表示为 le


        >= 在EL中可表示为 ge


        && 在EL中可表示为 and


        || 在EL中可表示为 or


        ! 在EL中可表示为 not


        / 在EL中可表示为 div


        % 在EL中可表示为 mod


    -->


    


    <hr>


    <li></li>测试empty<br>




    value1 empty ? : $...{ empty value1 } <br>




    value2 empty ? : $...{ empty value2 } <br>




    value3 empty ? : $...{ empty value3 } <br>


    


  </body>


</html>



 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐