1. EL表达式+自定义标签

来源:互联网 发布:java支付宝开发 编辑:程序博客网 时间:2024/06/05 03:31
1. EL表达式
    express lanaguage
    >> 怎么用?
        ${key} 该写法的含义是:首先在pageContext里面查找,
                   如果找到了就返回,没找到就依次在requet、session、applicaton里面查找,
                        如果找到了就返回,如没找到就返回空
        ${param.key} 获取传递过来的参数,返回的是null
        ${ paramValues.username[1] } 处理一个参数对应多个值得情况,返回的是个空
        ${ requestScope.pwd } 从request域里面来获取pwd所对应的值
    >> java bean
        1. 什么是java Bean
            1. 有一个无参的构造方法
            2. 所有的属性都是private的
            3. 所有的属性都有对应的get和set方法
        2. 有什么好处
            1. 提现面向对象的概念
            2. 内省机制
                BeanInfo info = Introspector.getBeanInfo(User.class);
             PropertyDescriptor[] pf = info.getPropertyDescriptors();
             User u = new User();
            
             for(PropertyDescriptor p : pf)
             {
                 String name = p.getName();
                 System.out.println(name);
                 if(p.getPropertyType().toString().equals("int") || p.getPropertyType().toString().equals("Integer"))
                 {
                     Integer value = Integer.parseInt(req.getParameter(name).toString());
                    
                     Method method = p.getWriteMethod();
                    
                     method.invoke(u, value);
                    
                 }else if(p.getPropertyType().toString().indexOf("String") != -1 )
                 {
                     String value = req.getParameter(name);
                    
                     Method method = p.getWriteMethod();
                    
                     method.invoke(u, value);
                 }
             }
        访问集合的时候.和属性的区别:
            .不适合的场景:
                1. key里面包含了.
                2. key 不是一个确定的值,而是由一个变量来代替
        el里面的运算
                +:${5 + 5 }<br/>
                -:${5 - 5 }<br/>
                *:${5 * 5 }<br/>
                /:${5 / 5 }<br/>
                <hr/>
                >:${5 > 6 }
                <hr/>
                &&:${true && true }<br>
                ||:${true || true }<br>
                !:${!true }<br>
        JSP的标签:(一般不用)
            <jsp:forward page="tag2.jsp"/>
            <jsp:param value="123" name="age"/>
            <jsp:include page="tag2.jsp"/>
            <jsp:userBean id="" name="" class=""/>
            <jsp:setProperty name="age" />
            <jsp:getProperty name="age" />
        JSTL标签:(明天将)
        
        在jsp里面用注释不要用<!-- --> 一定使用<%-- --%>注释否则会出现注释不起作用的情况
        
        自定义标签:(现实当前时间的标签)
            >>自定义EL函数
                1. 自己定义一个static的函数
                2. WEB-INF下创建一个tld文件用来声明该函数
                3. 在页面里面用<%@ taglib uri="http://www.xh.tx.com/mytag" prefix="my" %>来引入
                4. ${my:getTime()}
        
            >> 自定义一个新标签
                1.书写一个Java文件,继承或实现TagSupport,BodyTagSupport,SimpleTagSupport,SimpleTag
                2. WEB-INF下创建一个tld文件用来声明该函数
                3. 在页面里面用<%@ taglib uri="http://www.xh.tx.com/mytag" prefix="my" %>来引入
                4.     <a:test/>
            如果要给标签添加属性,就需要在tld文件里面加一个<attribute></attribute>,并且在java文件添加一个String的属性,并给set,get方法
           
0 0
原创粉丝点击