EL表达式和JSTL标签

来源:互联网 发布:出租屋桌子推荐知乎 编辑:程序博客网 时间:2024/04/29 13:43

把java代码转换为标签


EL表达式的作用

1.      访问Bean属性

${对象名.属性名}

${对象名[“属性名”]}

 

public class Course implements Serializable{

      

       /**

        * version 1.0

        */

       private static final long serialVersionUID = 1L;

      

       //courseId是对象的属性,setget方法中的直接对应的属性是bean的属性

       //当前方法会让我们以为此类中有id属性,则id就是bean属性。去掉get并将剩下的单词首字母小写,得到的就是bean属性。

 

//其实就是因为定义为private,所以不可能被外界访问到,所以只能访问到getset方法。  

       private IntegercourseId;

       private Stringname;

       private Integerdays;

      

       public Integer getId() {

              returncourseId;

       }

       public void setId(Integer courseId) {

              this.courseId =courseId;

}

2.      输出简单的运算结果

算数运算

逻辑运算

关系运算

empty

3.      获取请求参数

${param.username}

request.getParameter(“username”);



//EL表达式不需要使用包,通过使用类反射技术,不需要知道类型是什么。

EL是javaEE自带的包。

 

//JSTL(JSP Standard TagLibrary)

1.      如何使用JSTL标签对应的jar文件拷贝到WEB-INF/lib目录下

如果导包失败,删除.m2中的jstl,因为不删除的话,maven就不会从服务器中取数据了,因为maven比较傻。



1.      使用taglib指令导入使用的JSTL标签

<%@taglib uri=”” prefix %>

uri:JSP标签命名空间

prefix:命名空间的前缀

<%@tagliburi="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<!-- 2.choose -->

       <p>

              <c:choose>

                     <c:whentest="${stu.sex=='m' }"></c:when>

                     <c:otherwise></c:otherwise>

              </c:choose>

       </p>

 

       <!-- 3.foreach

              items:声明要遍历的数组或集合

              var:声明每次遍历所获取的数据的名称

       -->

       <p>

              <c:forEachitems="${stu.interests }"var="i">

                     ${i}

              </c:forEach>

</p>


tomcat在翻译JSP的时候会把JSTL标签翻译为java代码.

tld文件也在tomcat之内。

 

//工程之间可以互转。

如果remove

 

//如何开发自定义标签

1.      编写java类,继承SimpTagSupport类

2.      在doTag方法中添加处理逻辑

3.      配置标签说明

 

 <s:sysdate />                    2016/10/18 16:28:31

 

<s:sysdate  format=”yyyy年MM月dd日”/>       2016年10月18日

//如何自定义标签

 

1.      创建一个类继承SimpleTagSupport

如果想要定义属性的话:

肯定要定义一个私有属性,然后通过私有属性定义格式。

然后重写get和set方法。

// 时间的格式,有默认值。

       // 我们通过set方法修改其值

       private Stringformat = "yyyy/MM/ddHH:mm:ss";

 

       public String getFormat() {

              returnformat;

       }

 

       public void setFormat(String format) {

              this.format =format;

  }

//然后就需要对事件进行设置,就是重写doTag()方法。

需要将时间输出给浏览器,那么就传递,就需要一个容器,因为该方法声明返回的类型是

//将时间输出给浏览器

              //该方法声明返回JspContext

              //该方法实际返回的是PageContext

              //PageContext extendsJspContext

              PageContextctx =(PageContext)getJspContext();

              JspWriterout = ctx.getOut();

              out.println(now);

              //此处的流不能关闭,因为JSP上还有其他标签需要使用

           

 

<%@tagliburi="/yannis-tags"prefix="s"%>

 

 

<?xmlversion="1.0"encoding="UTF-8"?>

<taglibxmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

       xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"

       version="2.1">

       <description>Yannis library</description>

       <display-name>Yannis</display-name>

       <tlib-version>3.1</tlib-version>

       <short-name>s</short-name>

       <uri>/yannis-tags</uri>

 

       <tag>

              <description>

                     thisis a very low tag,it can bring webBroswersystem time and can design format,amazing!

              </description>

              <name>sysdate</name>

              <tag-class>

                     web.SysdateTag

              </tag-class>

              <body-content>empty</body-content>

              <attribute>

                     <description>

                            throughthis attribute to set the format of the date

                     </description>

                     <!-- 此处设置的是bean属性,tomcat通过set方法来设置值。-->

                     <name>format</name>

                     <!-- 该属性是否必须设置 -->

                     <required>false</required>

                     <!-- 给这个属性赋值时,是否允许使用EL -->

                     <rtexprvalue>true</rtexprvalue>

                     <type>java.lang.String</type>

              </attribute>

       </tag>

</taglib>



0 0
原创粉丝点击