JSTL中var和target 標籤的用法
阿新 • • 發佈:2019-02-01
<c:set>標籤有兩種不同的屬性設定:var和target。
var“版本”用於設定作用域屬性,target“版本”用於設定bean屬性或Map值。
這兩個版本都有兩種形式:有標籤體和沒有標籤體。有標籤體的只是放入值的另一種途徑。
★ var“版本”
1. <c:set var="userLevel" scope="session" value="Cowboy"/>
2.
3. <c:set var="fido" value="${person.dog}"/>
4.
5. <c:set var="user" scope="session">
6. Sheriff, Bartender, Cowgirl
7. </c:set>
如果“value”為null,“var”指定的屬性將被刪除!
如果“var”指定的屬性不存在,則會建立一個屬性,但僅當“value”不為null時才會建立新屬性。
★ target“版本”
1. <c:set target="${petMap}" property="dogName" value="Clover" scope="session"/>
2.
3. <c:set target="${person}" property="name">
4. ${foo.name}
5. </c:set>
如果“target”是一個Map,“property”指定的是該Map的一個鍵;如果“target”是一個bean,“property”指定的是該bean的一個成員欄位。
如果“target”表示式為null,容器會丟擲一個異常。
如果“target”表示式不是一個Map或bean,容器會丟擲一個異常。
如果“target”表示式是一個bean,但是這個bean沒有與“property”匹配的成員欄位,容器會丟擲一個異常。
var“版本”用於設定作用域屬性,target“版本”用於設定bean屬性或Map值。
這兩個版本都有兩種形式:有標籤體和沒有標籤體。有標籤體的只是放入值的另一種途徑。
★ var“版本”
1. <c:set var="userLevel" scope="session" value="Cowboy"/>
2.
3. <c:set var="fido" value="${person.dog}"/>
4.
5. <c:set var="user" scope="session">
6. Sheriff, Bartender, Cowgirl
7. </c:set>
如果“value”為null,“var”指定的屬性將被刪除!
如果“var”指定的屬性不存在,則會建立一個屬性,但僅當“value”不為null時才會建立新屬性。
★ target“版本”
1. <c:set target="${petMap}" property="dogName" value="Clover" scope="session"/>
2.
3. <c:set target="${person}" property="name">
4. ${foo.name}
5. </c:set>
如果“target”是一個Map,“property”指定的是該Map的一個鍵;如果“target”是一個bean,“property”指定的是該bean的一個成員欄位。
如果“target”表示式為null,容器會丟擲一個異常。
如果“target”表示式不是一個Map或bean,容器會丟擲一個異常。
如果“target”表示式是一個bean,但是這個bean沒有與“property”匹配的成員欄位,容器會丟擲一個異常。