类声明:

package test;

public class Student {
    private int age;

public int getAge() {
        return age;
    }

public void setAge(int age) {
        this.age = age;
    }
}
jsp代码:

<jsp:useBean id="student" scope="session" class="test.Student"></jsp:useBean>
<jsp:setProperty property="age" name="student"  value="12"/>
 <jsp:setProperty property="age" name="student"  param="12"/>  此处12只是一个参数名字
 <jsp:getProperty property="age" name="student"/>

=》12

源码如下:

test.Student student = null;

      synchronized (session) {

        student = (test.Student) _jspx_page_context.getAttribute("student", PageContext.SESSION_SCOPE);

        if (student == null){

          student = new test.Student();

          _jspx_page_context.setAttribute("student", student, PageContext.SESSION_SCOPE);

        }

      }

      out.write("\r\n");

      out.write("  \t");

      org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("student"), "age", "12", null, null, false);

      out.write("\r\n");

      out.write("  \t");

      org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("student"), "age", request.getParameter("12"), request, "12", false);

      out.write("\r\n");

      out.write("  \t");

      out.write(org.apache.jasper.runtime.JspRuntimeLibrary.toString((((test.Student)_jspx_page_context.findAttribute("student")).getAge())));

解释:

1.

<jsp:useBean id="student" scope="request" class="test.Student"></jsp:useBean>

<jsp:setProperty property="age" name="student"  value="12"/>必须和<jsp:useBean配套使用

2.在useBean中声明要放在哪个useBean范围内:page,request,session,application,然后指定id也就是属性名和class也就是属性类型。

3.利用setProperty往useBean声明的变量中放置值,property为属性的变量名,name为useBean中声明的id名这两者必须相同,因为是将值设置到id指定的属性中去,value直接设置属性值,param则是接受传递过来的参数值设置到属性中,如request.getParameter。

param例子:

test2.jsp:

<jsp:forward page="test3.jsp">
<jsp:param value="10" name="age"/>
</jsp:forward>

test3.jsp:

<jsp:useBean id="student" scope="request" class="test.Student"></jsp:useBean>
<jsp:setProperty property="age" name="student" param="age"/>
<jsp:getProperty property="age" name="student"/>

结果为:10

4.通过getProperty从id中取直,property指定属性名,那么指定从哪个id中取值。

注意:修改scope范围生成的servlet中的源代码只有以下部分发生改变

synchronized (session) {
        student = (test.Student) _jspx_page_context.getAttribute("student", PageContext.SESSION_SCOPE);
        if (student == null){
          student = new test.Student();
          _jspx_page_context.setAttribute("student", student, PageContext.SESSION_SCOPE);
        }
      }

此代码先判断在session中是否存在student对象不存在创建一个放入session中,如果存在则不创建。之后设置值时就是往该对象中放置。

jsp:setProperty的更多相关文章

  1. jsp中的<jsp:setProperty>中的param属性

    比如: <jsp:setProperty name="lader" property="edge" param="num" /> ...

  2. jsp标签jsp:setProperty用法

    <jsp:setProperty>用来设置已经实例化的Bean对象的属性 第一种形式: <jps:setProperty name = "JavaBean实例名" ...

  3. <jsp:useBean>、<jsp:setProperty>与<jsp:getProperty>

    <jsp:useBean>标签 会调用java对象的无参构造方法,来创建实例. <jsp:useBean>标签是用来搭配JavaBean元件的标准标签,这里指的JavaBean ...

  4. 【Head First Servlets and JSP】笔记19:JavaBeans与JSP动作元素(<jsp:setProperty.....>、<jsp:getProperty.....>)

    内容来自imooc. 1.什么是JSP动作元素 2.在JSP页面中如何使用Javabeans <jsp:......>表示这是一个JSP动作元素 3.使用JSP动作元素创建JavaBean ...

  5. `<jsp:getProperty>`动作和`<jsp:setProperty>`动作的使用在一个静态页面填写图书的基本信息,页面信息提交给其他页面,并且在其页面显示。要去将表单元素的值赋值给Java

    <jsp:getProperty>动作和<jsp:setProperty>动作的使用 1.<jsp:getProperty>动作 语法格式: <jsp:get ...

  6. JavaWeb学习笔记——jsp:setproperty和getproperty

  7. jsp标签之jsp:setProperty用法

    参考:http://blog.csdn.net/wanghaishanren/article/details/2047400

  8. JSP动作元素之useBean、setProperty、getProperty指令

    简介 这三个指令都是与JavaBean相关的指令,其中useBean指令用于在JSP页面中初始化一个Java实例:setProperty指令用于为JavaBean实例的属性设置值:getPropert ...

  9. JSP:useBean,setProperty的使用

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

随机推荐

  1. jsp获取一个对象和list对象

    DiscHd ks = DiscHdService.getDiscHdByID(code); model.addAttribute("ks", ks); 如果传的是对象,则jsp页 ...

  2. 进入MFC讲坛的前言(二)

    MFC的WinMain 使用MFC编程的程序员刚开始都会提出这样一个问题:我的程序是从哪儿开始执行的?回答是:从WinMain()开始执行的.提出这样的问题是由于在他们所编写的MFC应用中看不到Win ...

  3. 推断js中的类型:typeof / instanceof / constructor / prototype

    怎样推断js中的类型呢,先举几个样例: var a = "jason"; var b = 123; var c = true; var d = [1,2,3]; var e = n ...

  4. ORACLE列值合併

    合併列值最通用的方法就是寫一個自定義函數去實現,這裏介紹的是其它方法. 在SQL Server中合併列值能够使用For Xml Path,在Oracle中則能够使用wm_concat 或 ListAg ...

  5. Android的BUG(四) - Android app的卡死问题

    做android,免不了要去运行一些跑分程序,常用的跑分程序有quadrant(象限),nbench,安兔兔等.作为系统工程师,对这些跑分 程序都非常的不屑,这个只能是一个不客观的参考,但客户都喜欢拿 ...

  6. [转]mysql慢查询日志

    原文链接:http://www.cnblogs.com/zhangjing0502/archive/2012/07/30/2615570.html 参考博文:http://blog.chinaunix ...

  7. 我的Python成长之路---第一天---Python基础(2)---2015年12月26日(雾霾)

    三.数据类型 Python基本类型(能够直接处理的数据类型有以下几种)主要有5种 1.整数(int) Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如 ...

  8. 解决linux下javac -version和java -version版本显示不一致

    解决linux下javac -version和java -version版本显示不一致 [javascript] view plaincopy [root@localhost usr]# $JAVA_ ...

  9. 一步一步重写 CodeIgniter 框架 (3) —— 用面向对象重构代码

    前面两篇文章为了重点突出 CodeIgniter 框架的原理,程序的结构很乱,有很多全局变量,在这一课中我们采用面向对象的方法对原先代码进行重构. 到目前为止,程序主要完成的就是 URL 分析,并根据 ...

  10. Atitit.Gui控件and面板----web server区----- web服务器监控面板and控制台条目

    Atitit.Gui控件and面板----web server区----- web服务器监控面板and控制台条目 1. Resin4.0.22 1 2. 查看http连接数::Summary>& ...