学科分类
目录
Java Web

<c:set>标签

使用<c:set>标签设置域对象中某个属性的值时,可以通过两种方式,一是通过<c:set>的value属性设置域对象中属性的值,二是通过<c:set>标签体设置域对象中属性的值,这两种方式可以实现相同的效果,如例1所示。

例1 c_set1.jsp

 1  <%@ page language="java" contentType="text/html; 

 2  charset=utf-8" pageEncoding="utf-8"%>

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

 4  <html>

 5  <head></head>

 6  <body>

 7    session域中userName属性的值为:

 8    <c:set var="userName" value="itcast" scope="session" />

 9    <c:out value="${userName}" /><hr>

 10   session域中bookName属性的值为:

 11   <c:set var="bookName" scope="session">

 12     Java Web

 13   </c:set>

 14   <c:out value="${bookName}" />

 15 </body>

 16 </html>

打开IE浏览器,在地址栏中输入http://localhost:8080/chapter08/c_set1.jsp访问c_set1.jsp页面,此时,浏览器窗口中显示的结果如图1所示。

图1 c_set1.jsp

从图1可以看到,浏览器中输出了session域中userName属性和bookName属性的值。这是由于在例8-4中分别通过<c:set>标签的value属性和标签主体在session中将userName的值设置为itcast,bookName的值设置为Java Web,因此,在浏览器中便会输出session域中这两个属性的值。

2、使用标签设置UserBean对象和Map对象中某个属性的值

在使用<c:set>标签设置UserBean对象中某个属性的值之前,需要先创建一个User.java程序,用于封装一个User对象,如例2所示。

例2 User.java

 1  package cn.itcast.chapter08.entity;

 2  public class User {

 3    private String username;

 4    private String password;

 5    public String getUsername() {

 6      return username;

 7    }

 8    public void setUsername(String username) {

 9      this.username = username;

 10   }

 11   public String getPassword() {

 12     return password;

 13   }

 14   public void setPassword(String password) {

 15     this.password = password;

 16   }  

 17 }

​ 接下来在chapter08工程的WebContent根目录中,编写一个c_set2.jsp文件,在该文件中使用<c:set>标签设置User对象的username属性和password属性的值,以及设置Map集合某个属性的值,如例3所示。

例3 c_set2.jsp

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

 2  pageEncoding="utf-8" import="java.util.*"%>

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

 4  <html>

 5  <head></head>

 6  <body>

 7  <jsp:useBean id="user" class="cn.itcast.chapter08.entity.User"/>

 8    <c:set value="itcast" target="${user}" property="username" />

 9    User对象的username属性的值为:<c:out value="${user.username}" /><br>

 10   <c:set value="123" target="${user}" property="password" />

 11   User对象的password属性的值为:<c:out value="${user.password}" /><hr>

 12   <%

 13       HashMap map = new HashMap();

 14        request.setAttribute("preferences",map);

 15   %>

 16   <c:set target="${preferences }" property="color" value="green" />

 17   Map对象中color关键字的值为:<c:out value="${preferences.color}" />

 18 </body>

 19 </html>

打开IE浏览器,在地址栏中输入http://localhost:8080/chapter08/c_set2.jsp访问c_set2.jsp页面,此时,浏览器窗口中显示的结果如图8-8所示。

图2 c_set2.jsp

从图2可以看出,浏览器中输出了User对象相关属性的值以及Map对象中color关键字的值。这是由于例3中,将<c:set>标签的target属性指定为要设置的User对象,并使用property将username设置为属性,使用value将username属性的值设置为itcast,同理password属性也是这样设置的,这样便完成了设置User对象属性的功能。而对于Map对象来说,首先需要定义一个Map集合,然后在通过target属性将Map集合指定为要设置属性的对象,并将color属性的值设置为green,这样便完成了Map集合属性的设置。

点击此处
隐藏目录