JSP <jsp:setProperty> 动作
JSP <jsp:setProperty> 动作用来在 JSP 页面设置已经实例化的 Bean 对象的属性
JSP <jsp:setProperty> 动作有两种用法
-
可以在 <jsp:useBean> 元素的外面(后面)使用 <jsp:setProperty>
<jsp:useBean id="myName" ... /> ... <jsp:setProperty name="myName" property="someProperty"/>
这种方法,不管 <jsp:useBean> 使用一个已经存在的Bean,还是新创建了一个 Bean 实例,<jsp:setProperty> 都会执行
-
把 <jsp:setProperty> 放入 <jsp:useBean> 元素的内部
<jsp:useBean id="myName" ... > ... <jsp:setProperty name="myName" property="someProperty" /> </jsp:useBean>
这种方法,<jsp:setProperty> 只有在新建 Bean 实例时才会执行,如果使用现有实例则不执行 <jsp:setProperty>
属性
属性 | 描述 |
---|---|
name | 必需。它表示要设置属性的是哪个 Bean |
property | 必需的。它表示要设置哪个属性。有一个特殊用法:如果property的值是"*",表示所有名字和Bean属性名字匹配的请求参数都将被传递给相应的属性set方法 |
value | 可选的。该属性用来指定Bean属性的值。字符串数据会在目标类中通过标准的valueOf方法自动转换成数字、boolean、Boolean、 byte、Byte、char、Character。例如,boolean和Boolean类型的属性值(比如"true")通过 Boolean.valueOf转换,int和Integer类型的属性值(比如"42")通过Integer.valueOf转换。 value和param不能同时使用,但可以使用其中任意一个 |
param | 可选的。它指定用哪个请求参数作为Bean属性的值。如果当前请求没有参数,则什么事情也不做,系统不会把null传递给Bean属性的set方法。因此,你可以让Bean自己提供默认属性值,只有当请求参数明确指定了新值时才修改默认属性值 |
范例
1. 我们先来定义一个 JavaBean
src/main/java/cn/twle/demo/bean/TestBean.java
// author: 简单教程(www.twle.cn) // Copyright © 2015-2065 www.twle.cn. All rights reserved. package cn.twle.demo.bean; public class TestBean { private String message = "简单教程(www.twle.cn)"; public String getMessage() { return(message); } public void setMessage(String message) { this.message = message; } }
2. 然后在生成一个 JSP 页面调用 TestBean
webapp/action_usebean.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <meta charset="utf-8"> <title>JSP 使用 JavaBean 范例 - JSP 基础教程 | 简单教程(www.twle.cn)</title> <p>JSP 使用 JavaBean 范例 - JSP 基础教程 | 简单教程(www.twle.cn)</p> <jsp:useBean id="test" class="cn.twle.demo.bean.TestBean" /> <jsp:setProperty name="test" property="message" value="简单编程..." /> <p>输出信息....</p> <jsp:getProperty name="test" property="message" />
在浏览器上输入 http://localhost:8080/jsp/action_usebean.jsp 显示结果如下