JSP setProperty和getProperty动作

8个月前 (04-28)

<jsp:getProperty> 动作用于获取 Bean 的属性值,<jsp:setProperty> 动作用于设置 Bean 的属性值。

<jsp:getProperty>

<jsp:setProperty> 的语法如下:

<jsp:setProperty name = "beanName" property = "attributeName" value = "attributeValue"/>

其中,name 指定需要修改属性的 Bean 的名称;property 指定 Bean 的属性,即 Bean 类中的属性;value 是要设定的属性值。

<jsp:setProperty> 通常和 <jsp:useBean> 一起使用,分为两种情况。

1. 在 <jsp:useBean> 标签外使用 <jsp:setProperty> ,例如:

<jsp:useBean id = "User" ... />

...

<jsp:setProperty name = "User" property = "attributeName" value = "attributeValue"/>

以上情况,无论 <jsp:useBean> 是否实例化了 User 对象,<jsp:setProperty> 都会执行。

2. 在 <jsp:useBean> 标签里使用 <jsp:setProperty> ,例如:

<jsp:useBean id = "User" ...>

...

<jsp:setProperty name = "User" property = "attributeName" value = "attributeValue"/>

</jsp:useBean>

以上情况,只有 <jsp:useBean> 实例化了 User 对象,<jsp:setProperty> 才会执行。

<jsp:getProperty>

<jsp:getProperty> 的语法如下:

<jsp:getProperty name = "beanName" property = "attributeName">

其中,name 指定需要获取属性的 Bean 的名称;property 指定 Bean 的属性,即 Bean 类中的属性。

注意:<jsp:setProperty> 和 <jsp:getProperty> 动作都会按照 page、request、session 和 application 的顺序依次查找指定 Bean 的实例对象,直到个实例被找到。如果任何范围内都不存在这个 Bean 实例,则会拋出异常。

示例

创建 Bean 类 Site.java,代码如下:

package net.biancheng;

public class Site {

private String name;

private String url;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getUrl() {

return url;

}

public void setUrl(String url) {

this.url = url;

}

}

login.jsp 代码如下:

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

pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<title>编程帮(www.biancheng网站站点" rel="nofollow" />

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

pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<title>编程帮(www.biancheng网站站点" rel="nofollow" /> login.jsp运行结果
login.jsp 运行结果

index.jsp运行结果

index.jsp运行结果