zoukankan      html  css  js  c++  java
  • JSTL之c:set

    <jsp:setProperty>标记只能用来做一件事,那就是设置bean的性质。

    但是,如果你想设置一个Map中的值呢?或者说想在Map中创建新的一项呢?或者只是希望创建一个新的请求作用域属性,该肿么办呢?

    好吧,那就要用到c:set来帮忙了。

    c:set有两种不同的设置:var和target。var版本用于设置属性变量,target版本用于设置bean性质或Map值。这两种版本都有两种形式,有体和没体,其实只是讲值放在不同位置的书写方式而已,不必纠结。下面首先介绍var版本,设置属性变量:

    <!--设置属性的值,关键字set,var-->
    <html>
    <body>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    
    <% pageContext.setAttribute("name","wang"); %>
    name:
    <%= pageContext.getAttribute("name") %><br>
    <!--设置该属性的值-->
    <c:set var="name" value="ning" />
    after change:
    <c:out value="${name}" default="it's nothing" /><br>
    
    <!--设置的属性不存在,则创建该属性-->
    <c:set var="dog" scope="page" value="wangcai" />
    dog:
    <c:out value="${dog}" default="it's nothing" />
    </body>
    </html>

    上面的代码已经很清晰了,所以就不多啰嗦了。因为上面用到的都是没体的形式,所以这里写一下有体的书写形式,做一下对比。

    两种效果相同。

    <!--有体-->
    <c:set var="dog" scope="page" value="wangcai" />
    <!--没体-->
    <c:set var="dog" scope="page" >
    wangcai
    </c:set>

    下面讲一下设置bean性质

    <!--设置bean性质,关键字set,target-->
    <html>
    <body>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <% foo.person person = new foo.person(); %>
    <% pageContext.setAttribute("person",person);%>
    set bean<br>
    <c:set target="${person}" property="name" value="bigMan" />
    personName:
    <c:out value="${person.name}" /><br>
    </body>
    </html>

    person.java

    package foo;
    
    public class person{
        private String name;
    
        public void setName(String name){
            this.name = name;
        }
    
        public String getName(){
            return name;
        }
    }

    ok,上面的代码都很简单。到此c:set的简单的用法就介绍完了。

  • 相关阅读:
    Codeforces 627A XOR Equation(思路)
    Codeforces 633C Spy Syndrome 2(DP + Trie树)
    BZOJ 1982 [Spoj 2021]Moving Pebbles(博弈论)
    BZOJ 3676 [Apio2014]回文串(回文树)
    BZOJ 3790 神奇项链(manacher+DP+树状数组)
    Codeforces 449D Jzzhu and Numbers(高维前缀和)
    SPOJ Time Limit Exceeded(高维前缀和)
    BZOJ 4031 [HEOI2015]小Z的房间(Matrix-Tree定理)
    BZOJ 3809 Gty的二逼妹子序列(莫队+分块)
    BZOJ 3544 [ONTAK2010]Creative Accounting(set)
  • 原文地址:https://www.cnblogs.com/justenjoy/p/6753443.html
Copyright © 2011-2022 走看看