精华内容
下载资源
问答
  • JSP动态标签

    千次阅读 2018-08-07 10:08:55
    -----------------------------.JSP动态标签--------------------------------- JSP动态标签  JSP自己的标签,不用导包! JSP动态标签是JSP自己的标签,不是由第三方提供的,所以使用JSP动态标签时无需使用...

    -----------------------------.JSP动态标签---------------------------------

    JSP动态标签

      JSP自己的标签,不用导包!

    JSP动态标签是JSP自己的标签,不是由第三方提供的,所以使用JSP动态标签时无需使用taglib指令“导包”。

    JSP动态标签的格式为:<jsp:xxx …>

    无论是自定义的JSP标签,还是JSP自己的动态标签,还有第三方的标签,最终都会对应一组方法的调用!!!

    1 include动态标签

    include标签是动态包含,与include指令不同,include标签与RequestDispatcher.include()方法的功能是相同的。

    hel.jsp

      <body>

        <h1>hel.jsp</h1>

        <jsp:include page="lo.jsp" />

      </body>

     

    lo.jsp

    <%

        out.println("<h1>lo.jsp</h1>");

    %>

     

    动态包含是会为两个JSP页面都生成“真身”,然后hel.jsp的“真身”中会调用lo.jsp的“真身”的_jspService()方法而已。

    Hel.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"

        pageEncoding="UTF-8"%>

    <!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=UTF-8">

    <title>Insert title here</title>

    </head>

    <body>

           <%-- 取出包含页面传送的值 --%>

           <% String name = request.getParameter("name"); %>             

           <%-- 根据包含页面传送不同的值,输出的值也不同,这就是动态标签 --%>

           <h1><%=name %></h1>

    </body>

    </html>

     

    Lo.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"

        pageEncoding="UTF-8"%>

    <!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=UTF-8">

    <title>Insert title here</title>

    </head>

    <body>

           <%-- 向被包含页面传送值 ,静态标签适合包含一个文件,如CSS文件  而动态标签适合包含一个页面上的一个版块--%>

           <jsp:include page="/hel.jsp?name=likunpeng"></jsp:include>

    </body>

    </html>

     

    2 forward动态标签

    forward标签的作用是请求转发!forward标签的作用与RequestDispatcher#forward()方法相同。

    hel.jsp

     

    lo.jsp

    <%

        out.println("<h1>lo.jsp</h1>");

    %>

     

      注意,显示结果中没有<h1>hel.jsp</h1>,即hel.jsp中的所有输出都会被清除!

    模拟登陆页面:

    Login.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"

        pageEncoding="UTF-8"%>

    <!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=UTF-8">

    <title>Insert title here</title>

    </head>

    <body>

           <form action="/jsp_demo4/login.jsp" method="post">

                          <input type="hidden" name="isSubmit" value="1">

                  用户名:<input type="text" name="username"><br>

                  密码    :<input type="password" name="password"><br>

                          <input type="submit" value="提交">

           </form>

          

           <%

                  String isSubmit = request.getParameter("isSubmit");

                  if("1".equals(isSubmit)){

                  String username = request.getParameter("username");

                  String password = request.getParameter("password");

                  if("likunpeng".equals(username)&&"123".equals(password)){

                         //将用户和密码添加到request域对象中

                         request.setAttribute("userInfor", username +"你好,欢迎登录!");

            %>

                 <jsp:forward page="/success.jsp"></jsp:forward>

            <% }else{ %>

                 <jsp:forward page="/fail.jsp"></jsp:forward>

            <% } %>

            <% } %>

    </body>

    </html>

     

    Success.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"

        pageEncoding="UTF-8"%>

    <!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=UTF-8">

    <title>Insert title here</title>

    </head>

    <body>

           <h1>登录成功</h1>

           <%

                  String userInfor = (String)request.getAttribute("userInfor");

            %>

            <h1><%=userInfor %></h1>

    </body>

    </html>

     

    Fail.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"

        pageEncoding="UTF-8"%>

    <!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=UTF-8">

    <title>Insert title here</title>

    </head>

    <body>

           <h1>用户名或者密码错误</h1>

    </body>

    </html>

     

    3 useBean、setProperty、getProperty动态标签

    useBean

    先说一下与JavaBean相关的动态标签在JSP Model2中已经很少使用了。在JSP Model1中,JSP页面直接使用JavaBean,那里使用这些标签是很有用的!但是,这里还是要介绍一下。

    在开始测试JavaBean动态标签之前,我们需要先创建一个javaBean类:cn.itcast.domain.Person类。

    因为useBean标签有点小复杂,所以我们把useBean标签的作用直接翻译成Java代码!

    <jsp:useBean id="p1" class="cn.itcast.domain.Person" />

    <%

        Person p1 = (Person)pageContext.getAttribute("p1");

        if(p1 == null) {

           p1 = new Person();

            pageContext.setAttribute("p1", p1);

        }

    %>

     

    <jsp:useBean id="p1" class="cn.itcast.domain.Person" scope="session" />

    <%

        Person p1 = (Person)session.getAttribute("p1");

        if(p1 == null) {

           p1 = new Person();

            session.setAttribute("p1", p1);

        }

    %>

     

    setProperty

    setProperty标签的作用是给Bean设置属性值。当然,你必须保证Bean已经存在的前提下才能设置属性值。

    <jsp:useBean id="p1" class="cn.itcast.domain.Person" />

    <jsp:setProperty property="sex" value="male" name="p1"/>

    <%

        Person p = (Person)pageContext.getAttribute("p1");

        if(p == null) {

           throw new NullPointerException();

        }

        p.setSex("male");

    %>

     

    getProperty:

    getProperty标签的作用是获取Bean的属性值。

    <jsp:useBean id="p1" class="cn.itcast.domain.Person" />

    <jsp:setProperty property="sex" value="male" name="p1"/>

    <jsp:getProperty property="sex" name="p1" />

     

    useBean.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"

        pageEncoding="UTF-8"%>

    <%@page import="com.rl.model.*" %>

    <!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=UTF-8">

    <title>Insert title here</title>

    </head>

    <body>

           <%--

                  通过jsp:useBean默认给pageContext的设置一个属性

                  可以通过jsp:useBean的scope属性来选择四个域对象中的一个来设置属性

           --%>

           <jsp:useBean id="p" class="com.rl.model.Person"></jsp:useBean>

           <jsp:useBean id="p1" class="com.rl.model.Person" scope="request"></jsp:useBean>

           <jsp:useBean id="p2" class="com.rl.model.Person" scope="session"></jsp:useBean>

           <jsp:useBean id="p3" class="com.rl.model.Person" scope="application"></jsp:useBean>

           <%-- 给p3对象的name设置值,name指的是对象名,property是指对象中的属性名,value指的是对象中属性的指 --%>

           <jsp:setProperty property="name" name="p3" value="likunpeng"/>

           <%

                  //获得Person对象

                  Person person = (Person)pageContext.getAttribute("p");

                  Person person1 = (Person)request.getAttribute("p1");

                  Person person2 = (Person)session.getAttribute("p2");

                  Person person3 = (Person)application.getAttribute("p3");

            %>

            <%-- 获取到的person对象里面的值是空的 --%>

            <h1>pageContext域</h1>

            <%=person %>

            <hr>

            <h1>request域</h1>

            <%=person1 %>

            <h1>session域</h1>

            <%=person2 %>

            <hr>

            <h1>application域</h1>

            <%=person3 %><br>

            <%=person3.getName() %>

            <hr>

    </body>

    </html>

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

                           

    setProperty的自省机制:

    form.jsp

        <form action="bean.jsp" method="post">

        姓名:<input type="text" name="name"/><br/>

        年龄:<input type="text" name="age"/><br/>

        性别:<input type="text" name="sex"/><br/>

        <input type="submit" value="提交"/>

        </form>

     

    bean.jsp

    <jsp:useBean id="p1" class="cn.itcast.domain.Person" />

    <jsp:setProperty property="*" name="p1"/>

    <%=p1 %>

     

    <%@ page language="java" contentType="text/html; charset=UTF-8"

        pageEncoding="UTF-8"%>

    <%@page import="com.rl.model.*" %>

    <!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=UTF-8">

    <title>Insert title here</title>

    </head>

    <body>

           <jsp:useBean id="p" class="com.rl.model.Person"></jsp:useBean>

    <%--     

           <jsp:setProperty property="name" name="p"/>

           <jsp:setProperty property="age" name="p"/>

     --%>

           <%--简便给属性设值 --%>

           <jsp:setProperty property="*" name="p"/>

          

           <%

                  //<jsp:setProperty property="*" name="p"/>相当于以下java代码

                  String name = request.getParameter("name");

                  String age = request.getParameter("age");

                 

                  Person person1 = new Person();

                  person1.setName(name);

                  person1.setAge(Integer.valueOf(age));

                 

                  pageContext.setAttribute("p", person1,pageContext.PAGE_SCOPE);

            %>

            

           <%

                  Person person = (Person)pageContext.getAttribute("p");

            %>

            <h1><%=person %></h1>

            <h1><%=person.getName() %></h1>

            <h1><%=person.getAge() %></h1>

            <hr>

            

            <%-- 使用jsp:getProperty输出域对象中的属性 --%>

            <h1>姓名:<jsp:getProperty property="name" name="p"/></h1>

            <h1>年龄:<jsp:getProperty property="age" name="p"/></h1>

    </body>

    </html>

     

    展开全文
  • IBATIS动态标签

    万次阅读 2013-01-30 21:27:13
    介绍IBATIS的动态标签.  动态标签的作用是动态构建SQL语句,根据不同的一元或二元运算条件构建复杂的SQL语句,这功能非常好,这样就可以把写的BO层的SQL语句构造移值到SQL MAP 文件里。  这里例举一些例子: ...

             IBATIS的优势体现在他的sql语句上,动态sql生成是Ibatis的一大特色.介绍IBATIS的动态标签.


             动态标签的
    作用是动态构建SQL语句,根据不同的一元或二元运算条件构建复杂的SQL语句,这功能非常好,这样就可以把写的BO层的SQL语句构造移值到SQL MAP 文件里。

             这里例举一些例子:

    < select  id ="dynamicGetAccountList"  cacheModel ="account-cache"  resultMap ="account-result"   >  
          select * from ACCOUNT 
        < isGreaterThan  prepend ="and"  property ="id"  compareValue ="0" > 
               where ACC_ID = #id# 
        </ isGreaterThan >  
           order by ACC_LAST_NAME 
    </ select >


             上面语句中可以根据参数id的不同值能构造出两条SQL查询语句,符合动态标签判断条件的则执行条件里的内容个,否则不进行拼接.    

              下面是一个比较复杂的例子:

    <statement id="dynamicGetAccountList" resultMap="account-result" > 
          select * from ACCOUNT 
         <dynamic prepend="WHERE">
                  <isNotNull prepend="AND" property="firstName"> 
                        (ACC_FIRST_NAME = #firstName# 
                  <isNotNull prepend="OR" property="lastName"> 
                            ACC_LAST_NAME = #lastName#   
                  </isNotNull> 
                      ) 
               </isNotNull>
                <isNotNull prepend="AND" property="emailAddress"> 
                        ACC_EMAIL like #emailAddress# 
                 </isNotNull>
                 <isGreaterThan prepend="AND" property="id" compareValue="0"> 
                         ACC_ID = #id# 
                 </isGreaterThan>
         </dynamic>
         order by ACC_LAST_NAME
    </statement>


            上面的例子中,<dynamic>元素划分出SQL语句的动态部分。动态部分可以包含任意多的条件标签元素,条件标签决定是否在语句中包含其中的SQL代码。所有的条件标签元素将根据传给动态查询Statement的参数对象的情况来工作。<dynamic>元素和条件元素都有“prepend”属性,它是动态SQL代码的一部分,在必要情况下,可以被父元素的“prepend”属性覆盖。上面的例子中,prepend属性“where”将覆盖第一个为“真”的条件元素。这对于确保生成正确的SQL语句是有必要的。例如,在第一个为“真”的条件元素中,“AND”是不需要的,事实上,加上它肯定会出错。以下小节讨论不同的条件元素,包括二元条件元素,一元条件元素和其他动态元素。


    二元条件元素 

             二元条件元素将一个属性值和一个静态值或另一个属性值比较,如果条件为“真”,元素体的内容将被包括在查询SQL语句中。

             二元条件元素的属性: 

             prepend - 可被覆盖的SQL语句组成部分,添加在语句的前面(可选)property - 被比较的属性(必选)
             compareProperty - 另一个用于和前者比较的属性(必选或选择compareValue)
             compareValue - 用于比较的值(必选或选择compareProperty)

    二元条件元系的属性

    <isEqual>

    比较属性值和静态值或另一个属性值是否相等。

    <isNotEqual>

    比较属性值和静态值或另一个属性值是否不相等。

    <isGreaterThan>

    比较属性值是否大于静态值或另一个属性值。

    <isGreaterEqual>

    比较属性值是否大于等于静态值或另一个属性值。

    <isLessThan>

    比较属性值是否小于静态值或另一个属性值。

    <isLessEqual>

    比较属性值是否小于等于静态值或另一个属性值。 例子: <isLessEqual prepend=”AND” property=”age” compareValue=”18”> ADOLESCENT = ‘TRUE’ </isLessEqual>

     


    一元条件元素
              一元条件元素检查属性的状态是否符合特定的条件。
              一元条件元素的属性:
              prepend - 可被覆盖的SQL语句组成部分,添加在语句的前面(可选)
              property - 被比较的属性(必选)

    <isPropertyAvailable>

    检查是否存在该属性(存在parameter bean的属性)。

    <isNotPropertyAvailable>

    检查是否不存在该属性(不存在parameter bean的属性)。

    <isNull>

    检查属性是否为null。

    <isNotNull>

    检查属性是否不为null。

    <isEmpty>

     

    检查Collection.size()的值,属性的String或String.valueOf()值,是否为null或空(“”或size() < 1)。

     

    <isNotEmpty>

     

    检查Collection.size()的值,属性的String或String.valueOf()值,是否不为null或不为空(“”或size() > 0)。 例子:

     <isNotEmpty prepend=”AND” property=”firstName” > FIRST_NAME=#firstName# </isNotEmpty>

     

    还有两个其它的条件元素,<isParameterPresent>,<iterate>就不说了,用到的时候可以再查。

            简单的动态SQL元素


            虽然动态Mapped Statement API功能强大,但有时仅需要一小部分的动态SQL即可。为此,SQL statement和statement都可以包含简单的动态SQL元素,以帮助实现动态的order by子句,动态的查询字段或SQL语句的其他动态部分。简单动态SQL元素的概念有点象inline parameter的映射,但使用了稍微不同的语法。

             考虑下面的例子:

     
    <statement id=”getProduct” resultMap=”get-product-result”>
           select * from PRODUCT order by $preferredOrder$ 
    </statement>


             简单动态元素可以包含在<dynamic-mapped-statement>中,当要修改SQL语句本身时它能派上用场。例如:

    <statement id=”getProduct” resultMap=”get-product-result”> 
         SELECT * FROM PRODUCT 
         <dynamic prepend=”WHERE”>
            <isNotEmpty property=”description”>   
                PRD_DESCRIPTION $operator$ #description# </isNotEmpty> 
         </dynamic> 
    </statement>

                了解和熟练使用Ibatis的动态标签,才能发挥出ibatis的强大优势,能节省和复用很多sql语句.

    展开全文
  • mybatis常用动态标签

    千次阅读 2017-09-30 13:37:44
    mybatis常用的动态标签 1,用来循环容器的标签foreach 1 //mapper中我们要为这个方法传递的是一个容器,将容器中的元素一个一个的 2 //拼接到xml的方法中就要使用这个forEach这个标签了 3 public List ...

    mybatis常用的动态标签


    • if
    • choose(when,otherwise)
    • trim
    • where
    • set
    • foreach等

    1,用来循环容器的标签foreach

    复制代码
     1 //mapper中我们要为这个方法传递的是一个容器,将容器中的元素一个一个的
     2 //拼接到xml的方法中就要使用这个forEach这个标签了
     3 public List<Entity> queryById(List<String> userids);
     4 
     5 //对应的xml中如下
     6   <select id="queryById" resultMap="BaseReslutMap" >
     7       select * FROM entity
     8       where id in 
     9       <foreach collection="userids" item="userid" index="index" open="(" separator="," close=")">
    10               #{userid}
    11       </foreach>
    12   </select>
    复制代码

    2,concat模糊查詢

    复制代码
    <!-- 比如说我们想要进行条件查询,但是几个条件不是每次都要使用,那么我们就可以-->
    <!--通过判断是否拼接到sql中-->
      <select id="queryById" resultMap="BascResultMap" parameterType="entity">
        SELECT *  from entity
        <where>
            <if test="name!=null">
                name like concat('%',concat(#{name},'%'))
            </if>
        </where>
      </select>
    复制代码

     

    3,choose(when,otherwise)标签

    复制代码
    <!--  choose(判断参数) - 按顺序将实体类 User 第一个不为空的属性作为:where条件 -->  
    <select id="getUserList_choose" resultMap="resultMap_user" parameterType="com.yiibai.pojo.User">  
        SELECT *  
          FROM User u   
        <where>  
            <choose>  
                <when test="username !=null ">  
                    u.username LIKE CONCAT(CONCAT('%', #{username, jdbcType=VARCHAR}),'%')  
                </when >  
                <when test="sex != null and sex != '' ">  
                    AND u.sex = #{sex, jdbcType=INTEGER}  
                </when >  
                <when test="birthday != null ">  
                    AND u.birthday = #{birthday, jdbcType=DATE}  
                </when >  
                <otherwise>  
                </otherwise>  
            </choose>  
        </where>    
    </select> 
    复制代码

    4,selectKey标签

    复制代码
    <!-- 插入学生 自动主键-->  
    <insert id="createStudentAutoKey" parameterType="liming.student.manager.data.model.StudentEntity" keyProperty="studentId">  
        <selectKey keyProperty="studentId" resultType="String" order="BEFORE">  
            select nextval('student')  
        </selectKey>  
        INSERT INTO STUDENT_TBL(STUDENT_ID,  
                                STUDENT_NAME,  
                                STUDENT_SEX,  
                                STUDENT_BIRTHDAY,  
                                STUDENT_PHOTO,  
                                CLASS_ID,  
                                PLACE_ID)  
        VALUES (#{studentId},  
                #{studentName},  
                #{studentSex},  
                #{studentBirthday},  
                #{studentPhoto, javaType=byte[], jdbcType=BLOB, typeHandler=org.apache.ibatis.type.BlobTypeHandler},  
                #{classId},  
                #{placeId})  
    </insert>  
    复制代码

    5,if标签

    if标签可用在许多类型的sql语句中,我们以查询为例。首先看一个很普通的查询:

    <!-- 查询学生list,like姓名 -->  
    <select id="getStudentListLikeName" parameterType="StudentEntity" resultMap="studentResultMap">  
        SELECT * from STUDENT_TBL ST   
    WHERE ST.STUDENT_NAME LIKE CONCAT(CONCAT('%', #{studentName}),'%')  
    </select>  

    但是此时如果studentName为null,此语句很可能报错或查询结果为空。此时我们使用if动态sql语句先进行判断,如果值为null或等于空字符串,我们就不进行此条件的判断,增加灵活性。

    参数为实体类StudentEntity。将实体类中所有的属性均进行判断,如果不为空则执行判断条件。

    复制代码
    <!-- 2 if(判断参数) - 将实体类不为空的属性作为where条件 -->  
    <select id="getStudentList_if" resultMap="resultMap_studentEntity" parameterType="liming.student.manager.data.model.StudentEntity">  
        SELECT ST.STUDENT_ID,  
               ST.STUDENT_NAME,  
               ST.STUDENT_SEX,  
               ST.STUDENT_BIRTHDAY,  
               ST.STUDENT_PHOTO,  
               ST.CLASS_ID,  
               ST.PLACE_ID  
          FROM STUDENT_TBL ST   
         WHERE  
        <if test="studentName !=null ">  
            ST.STUDENT_NAME LIKE CONCAT(CONCAT('%', #{studentName, jdbcType=VARCHAR}),'%')  
        </if>  
        <if test="studentSex != null and studentSex != '' ">  
            AND ST.STUDENT_SEX = #{studentSex, jdbcType=INTEGER}  
        </if>  
        <if test="studentBirthday != null ">  
            AND ST.STUDENT_BIRTHDAY = #{studentBirthday, jdbcType=DATE}  
        </if>  
        <if test="classId != null and classId!= '' ">  
            AND ST.CLASS_ID = #{classId, jdbcType=VARCHAR}  
        </if>  
        <if test="classEntity != null and classEntity.classId !=null and classEntity.classId !=' ' ">  
            AND ST.CLASS_ID = #{classEntity.classId, jdbcType=VARCHAR}  
        </if>  
        <if test="placeId != null and placeId != '' ">  
            AND ST.PLACE_ID = #{placeId, jdbcType=VARCHAR}  
        </if>  
        <if test="placeEntity != null and placeEntity.placeId != null and placeEntity.placeId != '' ">  
            AND ST.PLACE_ID = #{placeEntity.placeId, jdbcType=VARCHAR}  
        </if>  
        <if test="studentId != null and studentId != '' ">  
            AND ST.STUDENT_ID = #{studentId, jdbcType=VARCHAR}  
        </if>   
    </select>  
    复制代码

    6,if+set实现修改语句

    当update语句中没有使用if标签时,如果有一个参数为null,都会导致错误。 
    当在update语句中使用if标签时,如果前面的if没有执行,则或导致逗号多余错误。使用set标签可以将动态的配置SET 关键字,和剔除追加到条件末尾的任何不相关的逗号。使用if+set标签修改后,如果某项为null则不进行更新,而是保持数据库原值。如下示例:

    复制代码
    <!-- 4 if/set(判断参数) - 将实体类不为空的属性更新 -->  
    <update id="updateStudent_if_set" parameterType="liming.student.manager.data.model.StudentEntity">  
        UPDATE STUDENT_TBL  
        <set>  
            <if test="studentName != null and studentName != '' ">  
                STUDENT_TBL.STUDENT_NAME = #{studentName},  
            </if>  
            <if test="studentSex != null and studentSex != '' ">  
                STUDENT_TBL.STUDENT_SEX = #{studentSex},  
            </if>  
            <if test="studentBirthday != null ">  
                STUDENT_TBL.STUDENT_BIRTHDAY = #{studentBirthday},  
            </if>  
            <if test="studentPhoto != null ">  
                STUDENT_TBL.STUDENT_PHOTO = #{studentPhoto, javaType=byte[], jdbcType=BLOB, typeHandler=org.apache.ibatis.type.BlobTypeHandler},  
            </if>  
            <if test="classId != '' ">  
                STUDENT_TBL.CLASS_ID = #{classId}  
            </if>  
            <if test="placeId != '' ">  
                STUDENT_TBL.PLACE_ID = #{placeId}  
            </if>  
        </set>  
        WHERE STUDENT_TBL.STUDENT_ID = #{studentId};      
    </update>  
    复制代码
    展开全文
  • 我们最常用到的标签是自定义静态标签,自定义动态标签,自定义函数标签这三种,首先我们需要了解他们之间的区别与联系,在实际运用中,我们才知道用那种标签能更好,更快的达到我们的目的。 自定义静态标签:自定义...

     我们最常用到的标签是自定义静态标签,自定义动态标签,自定义函数标签这三种,首先我们需要了解他们之间的区别与联系,在实际运用中,我们才知道用那种标签能更好,更快的达到我们的目的。

      自定义静态标签:自定义静态标签是指这样一种标签,他只有标签内容,在解析的时候不需要读取系统的数据库。自定义静态标签跟动态标签,函数标签之间的本质区别,就是他没有读取数据库这个步骤。我们在模板里面调用自定义静态标签,跟直接把自定义静态标签的内容复制到模板中,效果是一致的。SiteWeaver系统默认就有许多内置的系统标签,比如{$MY_网站顶部}{$MY_2006典雅网页底}等等,这些标签的一个最重要的目的就是将模板里面可能重复用到的代码独立出来,然后在不同的模板里面统一调用,这样的模板,风格统一,也容易理解。

      自定义动态标签:自定义动态标签可以划分为两个部分,SQL语句,跟标签内容,自定义动态标签在解析的时候,首先会解析的是标签里面的SQL语句,然后在根据SQL语句在数据库中查询相应的记录集,返回记录集之后,根据标签的内容对这些记录进行格式话输出,所以我们使用自定义动态标签可以实现下面两个方面的内容:一、设置SQL语句取出我们需要的数据,二、设置标签的内容将数据按照我们要求的格式输出。

      自定义函数标签:自定义函数标签可以看作是自定义动态标签的扩展,正如名字一般,自定义函数标签多了函数控制这部分的内容。自定义函数标签的函数可以插入到SQL语句中,也可以插入到标签内容中,相对的,我们通过函数可以动态的改变标签的SQL语句,跟标签输出的格式。比如自定义标签可以实现:是取出十个最新添加的图片,固定大小后输出。那么函数标签就可以实现:取出指定数量的最新添加的图片,指定图片的宽度,高度之后输出。这里的数量,宽度,高度在实现的时候就是用参数来控制的。

      看到这里,可能有些人会有这样的疑问,动态标签有自定义动态标签跟自定义函数标签,那么静态标签为什么只有自定义静态标签一种?如果我要在自定义静态标签里面添加参数,可以实现吗?

      答案是肯定的,虽然添加自定义静态标签的时候没有设置参数的地方,可是我们可以根据参数设置的规则来添加自定义静态标签的参数。

    展开全文
  • iBATIS动态标签

    千次阅读 2009-10-06 15:56:00
    动态标签的分类: §标签§二元标签§一元标签§标签§ 共同的属性 prepend,open,close 标签 §标签§属性 prepend,open,close 二元条件标签 §isEqual property=“age” compareValue=“20”> 比较属性值和静态值...
  • jstl动态标签的使用

    2013-08-21 10:14:12
    jstl动态标签的使用 用于动态生成一个string类型的URL,还可以同标签一起使用。 使用url标签生成一个动态的url,并把值存入session中. http://localhost:8181 var="url" scope="session"> Tomcat首页
  • 问题:像下面的动态标签如何调出来呢 答:点击数据-----数据验证----允许下面选择“序列”------来源可以选择区域,也可以自己手动输入。如下图
  • js之图片加载与动态标签创建方式 在加载图片的过程中,时常会遇到由于网络等原因使得加载的图片要在很久之后才能够被加载出,这样在很大的程度上影响了用户的视觉感受。例如,如果我们直接在页面上使用img标签,在...
  • Android动态标签选项列表效果的实现

    千次阅读 2016-06-22 12:04:38
    很多时候我们,我们会用到动态标签,而安卓并未提供一个直接方法,可以让动态标签换行,经过参照网上代码,做出以下效果。java代码 int size = testName.length; // 添加Button的个数 LinearLayout.LayoutParams ...
  • 如下为用if test动态标签,判断两个参数不为空. 只有当start和end都不为空的时候,才会进入limit &lt;if test="start!= null and end!=null" &gt; limit ${start},${end} &lt;/if&gt;....
  • mybatis动态SQL中的动态标签

    千次阅读 2018-03-03 14:26:13
    1.if动态 SQL 通常要做的事情是有条件地包含 where 子句的一部分。比如:23456789&lt;select id="findActiveBlogWithTitleLike" resultType="Blog"&gt; SELECT * FROM BLOG WHERE ...
  • mybatis 九大动态标签详解

    千次阅读 2020-07-08 16:33:50
    一、if:你们能判断,我也能判断! <select id="count" resultType="java.lang.Integer"> select count(*) from user...trim 标签一般用于拼接、去除 SQL 的前缀、后缀 trim 标签中的属性 属性 描述 pre
  • java之动态标签

    2014-08-04 14:20:08
     java之动态
  • ibatis 中动态SQL查询和动态标签嵌套的使用

    万次阅读 多人点赞 2016-05-09 17:21:57
    ibatis 动态查询 对于从事 Java EE 的开发人员来说,iBatis 是一个再熟悉不过的持久层框架了,在 Hibernate、JPA 这样的一站式对象 / 关系映射(O/R Mapping)解决方案盛行之前,iBaits 基本是持久层框架的不二选择...
  • 动态标签后添加图片

    2013-06-21 09:06:22
    应用在标签后添加图片,标签动态的。 实现代码: dropdownlabel = [[UILabel alloc]init]; [dropdownlabel setFrame:CGRectMake(90,8,180, 30)]; [dropdownlabel setFont:[UIFont fontWithName:@...
  • sql中常用的动态标签有哪些

    千次阅读 2018-09-21 08:30:04
    动态sql中常用的标签 If choose when otherwise trim where set foreach bind
  • ThymeLeaf动态标签href的使用

    千次阅读 2019-03-13 08:40:56
    样式:th:href="@{’/article/view/’+${art.id}}" 前端代码如下: &lt;div th:each="art : ${articles}"&gt;...@{'/article/view/'+${art.id}}"...${art.title}&quo
  • js中动态标签class名字

    千次阅读 2018-08-04 12:56:26
    /* $(".box dl").append("&lt;dt class='"+i+"'&gt;"+r[i].name+"&... //按照动态名字给大分类下的小分类赋值 for (var j = 0; j &lt; r[i].
  • 抽取可重用的sql标签 方便后面引用 可以在里面定义动态sql和内置参数 比如经常要查询的列名,或者插入用到的列名 include 还可以自定义一些属性 sql标签内部可以使用这些自定义的属性 取值使用${} 而不是#{}以后...
  • jsp动态标签请求转发forward

    千次阅读 2018-04-02 10:03:21
    setProperty标签的作用是给Bean设置属性值。当然,你必须保证Bean已经存在的前提下才能设置属性值。 name是usebean中的name praperty是属性 value是值! //对应的Java代码 Person p = (Person)pageContext....
  • js 创建动态标签

    千次阅读 2011-08-01 15:43:05
    //*************************************// //定义方法创建一个label标签 //*************************************// var createLabel = function(id, name
  • thymeleaf 动态标签内 js添加内容失败

    千次阅读 2017-12-26 09:30:31
    thymeleaf : js 操作span显示内容,显示不出,因为li里面的 th:text会覆盖掉整个span标签,可用相对定位或在其外添加新标签
  • 效果 接下来讲一下思路,其实就是要监听路由,当访问路由时讲路由的数据push到数组中 上代码 // tagsView.vue <template>...div class="tags" v-if="showTags">...li class="tags-li" v-for="(item,ind...
  • JSONP(动态标签跨域请求)

    千次阅读 2018-08-10 20:16:49
    解决这个方法就是配合ifram标签一起使用,让hello显示在ifram里面,从而避免了本页面的刷新。代码: < form action = "./path" method = "POST" target = "ppp" > < input type = "submit" value ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,866
精华内容 10,746
关键字:

动态标签