Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 782|回复: 0

jsp 语法简表

[复制链接]

该用户从未签到

发表于 2011-7-31 22:13:09 | 显示全部楼层 |阅读模式
JSP语法简表

--------------------------------------------------------------------------------

HTML 注释
在客户端显示一个注释.

JSP 语法
<!-- comment [ <%= expression %> ] -->
例子 1
<!-- This file displays the user login screen -->
在客户真个HTML源代码中产生和上面一样的数据:

<!-- This file displays the user login screen -->
例子 2
<!-- This page was loaded on <%= (new java.util.Date()).toLocaleString() %> -->
在客户真个HTML源代码中显示为:

<!-- This page was loaded on January 1, 2000 -->
描述
这种注释和HTML中很像,也就是它可以在"查看源代码"中看到.

独一有些不同的就是,你可以在这个注释顶用表达式(例子2所示).这个表达示是不定的,由页面不同而不同,你能够使用各种表达式,只要是正当的就行。更多的请看表达式

=========================================================
躲藏注释
写在JSP程序中,但不是发给客户。

JSP 语法
<%-- comment --%>
例子:
<%@ page language="java" %>
<html>
<head><title>A Comment Test</title></head>
<body>
<h2>A Test of Comments</h2>
<%-- This comment will not be visible in the page source --%>
</body>
</html>
描述
用躲藏注释标记的字符会在JSP编译时被忽略掉。这个注释在你但愿躲藏或注释你的JSP程序时是很有用的。JSP编译器不是会对<%--and--%>之间的语句进行编译的,它不会显示在客户的浏览器中,也不会在源代码中看到

在<%-- --%>之间,你可以任意写注释语句,但是不能使用 "--%>",假如你非要使用请用"--%>".



================================================================
声明
在JSP程序中声明正当的变量和方法

JSP 语法
<%! declaration; [ declaration; ]+ ... %>
例子
<%! int i = 0; %>
<%! int a, b, c; %>
<%! Circle a = new Circle(2.0); %>
描述
声明你将要在JSP程序顶用到的变量和方法。你也必需这样做,不然会犯错.

你可以一次性声明多个变量和方法,只要以";"结尾就行,当然这些声明在Java中要是正当的。

当你声明方法或变量时,请留意以下的一些规则:

声明必需以";"结尾(Scriptlet有同样的规则,但是 表达式就不同了).
你可以直接使用在<% @ page %>中被包含进来的已经声明的变量和方法,不需要对它们重新进行声明.
一个声明仅在一个页面中有效。假如你想每个页面都用到一些声明,最好把它们写成一个单独的文件,然后用<%@ include %>或<jsp:include >元素包含进来。

==================================================================
表达式
包含一个符合JSP语法的表达式

JSP 语法
<%= expression %>
例子
<font color="blue"><%= map.size() %></font>
<b><%= numguess.getHint() %></b>.
描述
表达式元素表示的是一个在脚本语言中被定义的表达式,在运行后被自动转化为字符串,然后插入到这个表达示在JSP文件的位置显示。由于这个表达式的值已经被转化为字符串,所以你能在一行文本中插入这个表达式(形式和ASP完全一样).

当你在JSP中使用表达式时请记住以下几点:

你不能用一个分号(";")来作为表达式的结束符.但是同样的表达式用在scriptlet中就需要以分号来结尾了!查看Scriptlet
这个表达式元素能够包括任何在Java Language Specification中有效的表达式.
有时候表达式也能做为其它JSP元素的属性值.一个表达式能够变得很复杂,它可能由一个或多个表达式组成,这些表达式的顺序是从左到右。

==================================================================
Scriptlet
包含一个有效的程序段.

JSP 语法
<% code fragment %>
例子
<%
String name = null;
if (request.getParameter("name") == null) {
%>
<%@ include file="error.html" %>
<%
} else {
foo.setName(request.getParameter("name"));
if (foo.getName().equalsIgnoreCase("integra"))
name = "acura";
if (name.equalsIgnoreCase( "acura" )) {
%>
描述
一个scriptlet能够包含多个jsp语句,方法,变量,表达式

由于scriptlet,我们便能做以下的事:

声明将要用到的变量或方法(参考 声明).
编写JSP表达式(参考 表达式).
使用任何隐含的对象和任何用<jsp:useBean>声明过的对象
编写JSP语句 (假如你在使用Java语言,这些语句必需遵从Java Language Specification,).
任何文本,HTML标记,JSP元素必需在scriptlet之外
当JSP收到客户的哀求时,scriptlet就会被执行,假如scriptlet有显示的内容,这些显示的内容就被存在out对象中。

=======================================================================
Include 指命
在JSP中包含一个静态的文件,同时解析这个文件中的JSP语句.

JSP 语法
<%@ include file="relativeURL" %>
例子
include.jsp:
<html>
<head><title>An Include Test</title></head>
<body bgcolor="white">
<font color="blue">
The current date and time are
<%@ include file="date.jsp" %>
</font>
</body>
</html>
date.jsp:
<%@ page import="java.util.*" %>
<%= (new java.util.Date() ).toLocaleString() %>
Displays in the page:
The current date and time are
Aug 30, 1999 2:38:40

描述
<%@include %>指命将会在JSP编译时插入一个包含文本或代码的文件,当你使用<%@ include %>指命时,这个包含的过程就当是静态的。静态的包含就是指这个被包含的文件将会被插入到JSP文件中去,这个包含的文件可以是JSP文件,HTML文件,文本文件。假如包含的是JSP文件,这个包含的JSP的文件中代码将会被执行。

假如你仅仅只是用include 来包含一个静态文件。那么这个包含的文件所执行的结果将会插入到JSP文件中放<% @ include %>的地方。一旦包含文件被执行,那么主JSP文件的过程将会被恢复,继承执行下一行.

这个被包含文件可以是html文件,jsp文件,文本文件,或者只是一段Java代码,但是你得留意在这个包含文件中不能使用<html>,</html>,<body>,</body>标记,由于这将会影响在原JSP文件中同样的标记 ,这样做有时会导致错误.

有一些<%@ include %>指命的行为是以特殊的JSP编译前提为基础,好比:

这个被包含的文件必需对所有客户都有开放且必需f有效,或者它有安全限制
假如这个包含文件被改变,包含此文件的JSP文件将被重新编译
属性:
file="relativeURL"
这个包含文件的路径名一般来说是指相对路径,不需要什么端口,协议,和域名,如下:

"error.jsp""/templates/onlinestore.html""/beans/calendar.jsp"

假如这个路径以"/"开头,那么这个路径主要是参照JSP应用的上下关系路径,假如路径是以文件名或目录名开头,那么这个路径就是正在使用的JSP文件确当前路径.

==================================================================
Page 指令
定义JSP文件中的全局属性.

JSP 语法
<%@ page
[ language="java" ]
[ extends="package.class" ]
[ import="{package.class / package.*}, ..." ]
[ session="true / false" ]
[ buffer="none / 8kb / sizekb" ]
[ autoFlush="true / false" ]
[ isThreadSafe="true / false" ]
[ info="text" ]
[ errorPage="relativeURL" ]
[ contentType="mimeType [ ;charset=characterSet ]" / "text/html ; charset=ISO-8859-1" ]
[ isErrorPage="true / false" ]
%>
例子
<%@ page import="java.util.*, java.lang.*" %>
<%@ page buffer="5kb" autoFlush="false" %>
<%@ page errorPage="error.jsp" %>
描述
<%@ page %>指令作用于整个JSP页面,同样包括静态的包含文件。但是<% @ page %>指令不能作用于动态的包含文件,好比 <jsp:include>

你可以在一个页面顶用上多个<% @ page %>指令,但是其中的属性只能用一次,不外也有个例外,那就是import属性。由于import属性和Java中的import语句差未几(参照Java Language),所以你就能多用此属性几回了.

不管你把<% @ page %>指令放在JSP的文件的哪个地方,它的作用范围都是整个JSP页面。不外,为了JSP程序的可读性,以及好的编程习惯,最好仍是把它放在JSP文件的顶部.

属性
language="java"
声明脚本语言的种类,暂时只能用"java"

extends="package.class"
标明JSP编译时需要加入的Java Class的全名,但是得慎重的使用它,它会限制JSP的编译能力.

import="{package.class / package.* }, ..."
需要导入的Java包的列表,这些包就作用于程序段,表达式,以及声明。

下面的包在JSP编译时已经导入了,所以你就不需要再指明了:

java.lang.*
javax.Servlet.*
javax.servlet.jsp.*
javax.servlet.http.*

session="true / false"
设定客户是否需要HTTP Session.(学过ASP的人,应该对它不目生)假如它为true,那么Session是有用的。

假如它有false,那么你就不能使用session对象,以及定义了scope=session的<jsp:useBean>元素。这样的使用会导致错误.

缺省值是true.

buffer="none / 8kb / sizekb"
buffer的大小被out对象用于处理执行后的JSP对客户浏览器的输出。缺省值是8kb

autoFlush="true / false"
设置假如buffer溢出,是否需要强制输出,假如其值被定义为true(缺省值),输出正常,假如它被设置为false,假如这个buffer溢出,就会导致一个意外错误的发生.假如你把buffer设置为none,那么你就不能把autoFlush设置为false.

isThreadSafe="true / false"
设置Jsp文件是否能多线程使用。缺省值是true,也就是说,JSP能够同时处理多个用户的哀求,假如设置为false,一个jsp只能一次处理一个哀求

info="text"
一个文本在执行JSP将会被逐字加入JSP中,你能够使用Servlet.getServletInfo方法取回。

errorPage="relativeURL"
设置处理异常事件的JSP文件。

isErrorPage="true / false"
设置此页是否为犯错页,假如被设置为true,你就能使用exception对象.

contentType="mimeType [ ;charset=characterSet ]" / "text/html;charset=ISO-8859-1"
设置MIME类型 。缺省MIME 类型是: text/html, 缺省字符集为 ISO-8859-1.

=================================================================
Taglib 指令
定义一个标签库以及其自定义标签的前缀.

JSP 语法
<%@ taglib uri="URIToTagLibrary" prefix="tagPrefix" %>
例子
<%@ taglib uri="http://www.jspcentral.com/tags" prefix="public" %>
<public:loop>
.
.
</public:loop>
描述
<% @ taglib %>指令声明此JSP文件使用了自定义的标签,同时引用标签库,也指定了他们的标签的前缀。

这里自定义的标签含有标签和元素之分。由于JSP文件能够转化为XML,所以了解标签和元素之间的联系很重要。标签只不外是一个在意义上被抬高了点的标记,是JSP元素的一部门。JSP元素是JSP语法的一部门,和XML一样有开始标记和结束标记。元素也可以包含其它的文本,标记,元素。好比,一个jsp:plugin元素有<jsp:plugin>开始标记和</jsp:plugin>结束标记,同样也可以有<jsp:params>和<jsp:fallback>元素.

你必需在使用自定义标签之前使用<% @ taglib %>指令,而且你可以在一个页面中多次使用,但是前缀只能使用一次

属性
uri="URIToTagLibrary"
Uniform Resource Identifier (URI)根据标签的前缀对自定义的标签进行独一的命名,URI可以是以下的内容:

 

Uniform Resource Locator (URL), 由 RFC 2396 定义, 查看 http://www.hut.fi/u/jkorpela/rfc/2396/full.html
 

Uniform Resource Name (URN), 由 RFC 2396定义
 

一个相对或绝对的路径
prefix="tagPrefix"
在自定义标签之前的前缀,好比,在<public:loop>中的public,假如这里不写public,那么这就是不正当的。请不要用jsp, jspx, java, javax, servlet, sun, 和sunw做为你的前缀

=====================================================================
<jsp:forward>
重定向一个HTML文件,JSP文件,或者是一个程序段.

JSP 语法
<jsp:forward page={"relativeURL" / "<%= expression %>"} />
or
<jsp:forward page={"relativeURL" / "<%= expression %>"} >
<jsp:param name="parameterName"
value="{parameterValue / <%= expression %>}" />+
</jsp:forward>
例子
<jsp:forward page="/servlet/login" />
<jsp:forward page="/servlet/login">
<jsp:param name="username" value="jsmith" />
</jsp:forward>
描述
<jsp:forward>标签从一个JSP文件向另一个文件传递一个包含用户哀求的request对象.<jsp:forward>标签以下的代码,将不能执行.

你能够向目标文件传送参数和值,在这个例子中我们传递的参数名为username,值为scott,假如你使用了<jsp:param>标签的话,目标文件必需是一个动态的文件,能够处理参数.

假如你使用了非缓冲输出的话,那么使用<jsp:forward>时就要小心。假如在你使用<jsp:forward>之前,jsp文件已经有了数据,那么文件执行就会犯错.

属性
page="{relativeURL / <%= expression %>}"
这里是一个表达式或是一个字符串用于说明你将要定向的文件或URL.这个文件可以是JSP,程序段,或者其它能够处理request对象的文件(如asp,cgi,php).

<jsp:param name="parameterName" value="{parameterValue / <%= expression %>}" />+
向一个动态文件发送一个或多个参数,这个文件一定是动态文件.

假如你想传递多个参数,你可以在一个JSP文件中使用多个<jsp:param>。name指定参数名,value指定参数值.

======================================================================
<jsp:getProperty>
获取Bean的属性值,用于显示在页面中

JSP 语法
<jsp:getProperty name="beanInstanceName" property="propertyName" />
例子
<jsp:useBean id="calendar" scope="page" class="employee.Calendar" />
<h2>
Calendar of <jsp:getProperty name="calendar" property="username" />
</h2>
描述
这个<jsp:getProperty>元素将获得Bean的属性值,并可以将其使用或显示在JSP页面中.在你使用<jsp:getProperty>之前,你必需用<jsp:useBean>创建它.

<jsp:getProperty>元素有一些限制:

你不能使用<jsp:getProperty>来检索一个已经被索引了的属性
你能够和JavaBeans组件一起使用<jsp:getProperty>,但是不能与Enterprise Bean一起使用。
属性
name="beanInstanceName"
bean的名字,由<jsp:useBean>指定

property="propertyName"
所指定的Bean的属性名。

技巧:
在sun的JSP参考中提到,假如你使用<jsp:getProperty>来检索的值是空值,那么NullPointerException将会泛起,同时假如使用程序段或表达式来检索其值,那么在浏览器上泛起的是null(空).

======================================================================
<jsp:include>
包含一个静态或动态文件.

JSP 语法
<jsp:include page="{relativeURL / <%= expression%>}" flush="true" />
or
<jsp:include page="{relativeURL / <%= expression %>}" flush="true" >
<jsp:param name="parameterName" value="{parameterValue / <%= expression %>}" />+
</jsp:include>
Examples
<jsp:include page="scripts/login.jsp" />
<jsp:include page="copyright.html" />
<jsp:include page="/index.html" />
<jsp:include page="scripts/login.jsp">
<jsp:param name="username" value="jsmith" />
</jsp:include>

描述
<jsp:include>元素答应你包含动态文件和静态,这两种包含文件的结果是不同的。假如文件仅是静态文件,那么这种包含仅仅是把包含文件的内容加到jsp文件中去,而假如这个文件动态的,那么这个被包含文件也会被Jsp编译器执行(这一切与asp相似)

你不能从文件名上判定一个文件是动态的仍是静态的,好比aspcn.asp 就有可能只是包含一些信息而已,而不需要执行。<jsp:include>能够同时处理这两种文件,因此你就不需要包含时还要判定此文件是动态的仍是静态的.

假如这个包含文件是动态的,那么你还可以用<jsp:param>还传递参数名和参数值。

属性
page="{relativeURL / <%= expression %>}"
参数为一相对路径,或者是代表相对路径的表达式.

flush="true"
这里你必需使用flush="true",你不能使用false值.缺省值为false

<jsp:param name="parameterName" value="{parameterValue / <%= expression %> }" />+
<jsp:param>子句能让你传递一个或多个参数给动态文件

你能在一个页面中使用多个<jsp:param>来传递多个参数.

==================================================================
<jsp:plugin>
执行一个applet或Bean,有可能的话还要下载一个Java插件用于执行它.

JSP 语法
<jsp:plugin
type="bean / applet"
code="classFileName"
codebase="classFileDirectoryName"
[ name="instanceName" ]
[ arcHive="URIToArchive, ..." ]
[ align="bottom / top / middle / left / right" ]
[ height="displayPixels" ]
[ width="displayPixels" ]
[ hspace="leftRightPixels" ]
[ vspace="topBottomPixels" ]
[ jreversion="JREVersionNumber / 1.1" ]
[ nspluginurl="URLToPlugin" ]
[ iepluginurl="URLToPlugin" ] >
[ <jsp:params>
[ <jsp:param name="parameterName" value="{parameterValue / <%= expression %>}" /> ]+
</jsp:params> ]

[ <jsp:fallback> text message for user </jsp:fallback> ]

</jsp:plugin>

例子
<jsp:plugin type=applet code="Molecule.class" codebase="/html">
<jsp:params>
<jsp:param name="molecule" value="molecules/benzene.mol" />
</jsp:params>
<jsp:fallback>
<p>Unable to load applet</p>
</jsp:fallback>
</jsp:plugin>
描述
<jsp:plugin>元素用于在浏览器中播放或显示一个对象(典型的就是applet和Bean),而这种显示需要在浏览器的java插件。

当Jsp文件被编译,送往浏览器时,<jsp:plugin>元素将会根据浏览器的版本替代成<object>或者<embed>元素。留意,<object>用于HTML 4.0 ,<embed>用于HTML 3.2.

一般来说,<jsp:plugin>元素会指定对象是Applet仍是Bean,同样也会指定class的名字,还有位置,另外还会指定将从哪里下载这个Java插件。详细如下:

属性
type="bean / applet"
.将被执行的插件对象的类型,你必需得指定这个是Bean仍是applet,由于这个属性没出缺省值.

code="classFileName"
将会被Java插件执行的Java Class的名字,必需以.class结尾。这个文件必需存在于codebase属性指定的目录中.

codebase="classFileDirectoryName"
将会被执行的Java Class文件的目录(或者是路径),假如你没有提供此属性,那么使用<jsp:plugin>的jsp文件的目录将会被使用.

name="instanceName"
这个Bean或applet实例的名字,它将会在Jsp其它的地方调用.

archive="URIToArchive, ..."
一些由逗号分开的路径名,这些路径名用于预装一些将要使用的class,这会进步applet的机能.

align="bottom / top / middle / left / right"
图形,对象,Applet的位置,有以下值:

bottom
top
middle
left
right
height="displayPixels" width="displayPixels"
Applet或Bean将要显示的长宽的值,此值为数字,单位为象素.

hspace="leftRightPixels" vspace="topBottomPixels"
Applet或Bean显示时在屏幕左右,上下所需留下的空间,单位为象素.

jreversion="JREVersionNumber / 1.1"
Applet或Bean运行所需的Java Runtime Environment (JRE) 的版本. 缺省值是 1.1.

nspluginurl="URLToPlugin"
Netscape Navigator用户能够使用的JRE的下载地址,此值为一个尺度的URL,如http://www.aspcn.com/jsp

iepluginurl="URLToPlugin"
IE用户能够使用的JRE的下载地址,此值为一个尺度的URL,如http://www.aspcn.com/jsp

 

<jsp:params> [ <jsp:param name="parameterName" value="{parameterValue / <%= expression %>}" /> ]+ </jsp:params>
你需要向applet或Bean传送的参数或参数值。

<jsp:fallback> text message for user </jsp:fallback>
一段文字用于Java 插件不能启动时显示给用户的,假如插件能够启动而applet或Bean不能,那么浏览器会有一个犯错信息弹出.

=========================================================================
<jsp:setProperty>
设置Bean中的属性值.

JSP语法
<jsp:setProperty
name="beanInstanceName"
{
property= "*" /
property="propertyName" [ param="parameterName" ] /
property="propertyName" value="{string / <%= expression %>}"
}
/>
例子
<jsp:setProperty name="mybean" property="*" />
<jsp:setProperty name="mybean" property="username" />
<jsp:setProperty name="mybean" property="username" value="Steve" />
描述
<jsp:setProperty>元素使用Bean给定的setter方法,在Bean中设置一个或多个属性值。你在使用这个元素之前必需得使用<jsp:useBean>声明此Bean.由于,<jsp:useBean>和<jsp:setProperty>是联系在一起的,同时这他们使用的Bean实例的名字也应当相匹配(就是说,在<jsp:setProperty>中的name的值应当和<jsp:useBean>中id的值相同)

你能使用多种方法利用<jsp:setProperty>来设定属性值 :

通过用户输入的所有值(被做为参数储存中request对象中)来匹配Bean中的属性
通过用户输入的指定的值来匹配Bean中指定的属性
在运行时使用一个表达式来匹配Bean的属性
每一种设定属性值的方法都有其特定的语法,下面我们会来讲解

属性及其用法
name="beanInstanceName"
表示已经在<jsp:useBean>中创建的Bean实例的名字.

property="*"
储存用户在Jsp输入的所有值,用于匹配Bean中的属性。在Bean中的属性的名字必需和request对象中的参数名一致.

从客户传到服器上的参数值一般都是字符类型 ,这些字符串为了能够在Bean中匹配就必需转换成其它的类型,下面的表中列出了Bean属性的类型以及他们的转换方法.

把字符串转化为其它类型的方法. Property 类型
方法


boolean or Boolean

java.lang.Boolean.valueOf(String)

byte or Byte

java.lang.Byte.valueOf(String)

char or Character

java.lang.Character.valueOf(String)

double or Double

java.lang.Double.valueOf(String)

integer or Integer

java.lang.Integer.valueOf(String)

float or Float

java.lang.Float.valueOf(String)

long or Long

java.lang.Long.valueOf(String)


假如request对象的参数值中有空值,那么对应的Bean属性将不会设定任何值。同样的,假如Bean中有一个属性没有与之对应的Request参数值,那么这个属性同样也不会设定.

property="propertyName" [ param="parameterName" ]
使用request中的一个参数值来指定Bean中的一个属性值。在这个语法中,property指定Bean的属性名,param指定request中的参数名.

假如bean属性和request参数的名字不同,那么你就必需得指定property和param ,假如他们同名,那么你就只需要指明property就行了.

如查参数值为空(或未初始化),对应的Bean属性不被设定.

property="propertyName" value="{string / <%= expression %>}"
使用指定的值来设定Bean属性。这个值可以是字符串,也可以是表达式。假如这个字符串,那么它就会被转换成Bean属性的类型(查看上面的表).假如它是一个表达式,那么它类型就必需和它将要设定的属性值的类型一致。

假如参数值为空,那么对应的属性值也不会被设定。另外,你不能在一个<jsp:setProperty>中同时使用param和value

技巧
假如你使用了property="*",那么Bean的属性没有必要按Html表单中的顺序排序

=======================================================================
<jsp:useBean>
创建一个Bean实例并指定它的名字和作用范围.

JSP 语法
<jsp:useBean
id="beanInstanceName"
scope="page / request / session / application"
{
class="package.class" /
type="package.class" /
class="package.class" type="package.class" /
beanName="{package.class / <%= expression %>}" type="package.class"
}
{
/> /
> other elements </jsp:useBean>
}
例子
<jsp:useBean id="cart" scope="session" class="session.Carts" />
<jsp:setProperty name="cart" property="*" />
<jsp:useBean id="checking" scope="session" class="bank.Checking" >
<jsp:setProperty name="checking" property="balance" value="0.0" />
</jsp:useBean>

描述
<jsp:useBean>用于定位或示例一个JavaBeans组件。<jsp:useBean>首先会试图定位一个Bean实例,假如这个Bean不存在,那么<jsp:useBean>就会从一个class或模版中进行示例。

为了定位或示例一个Bean,<jsp:useBean>会进行以下步聚,顺序如下:

通过给定名字和范围试图定位一个Bean.
对这个Bean对象引用变量以你指定的名字命名.
假如发现了这个Bean,将会在这个变量中储存这个引用。假如你也指定了类型,那么这个Bean也设置为相应的类型.
假如没有发现这个Bean,将会从你指定的class中示例,并将此引用储存到一个新的变量中去。假如这个class的名字代表的是一个模版,那么这个Bean被java.beans.Beans.instantiate示例.
假如<jsp:useBean>已经示例(不是定位)了Bean,同时<jsp:useBean>和</jsp:useBean>中有元素,那么将会执行其中的代码.
<jsp:useBean>元素的主体通常包含有<jsp:setProperty>元素,用于设置Bean的属性值。正如上面第五步所说的,<jsp:useBean>的主体仅仅只有在<jsp:useBean>示例Bean时才会被执行,假如这个Bean已经存在,<jsp:useBean>能够定位它,那么主体中的内容将不会起作用

属性以及用法
id="beanInstanceName"
在你所定义的范围中确认Bean的变量,你能在后面的程序中使用此变量名来分辨不同的Bean

这个变量名对大小写敏感,必需符合你所使用的脚本语言的划定,在Java Programming Language中,这个划定在Java Language 规范已经写明。假如这个Bean已经在别的<jsp:useBean>中创建,那么这个id的值必需与原来的那个id值一致.

scope="page / request / session / application"
Bean存在的范围以及id变量名的有效范围。缺省值是page,以下是具体说明:

 

page - 你能在包含<jsp:useBean>元素的JSP文件以及此文件中的所有静态包含文件中使用Bean,直到页面执行完毕向客户端发还响应或转到另一个文件为止。
 

request - 你在任何执行相同哀求的Jsp文件中使用Bean,直到页面执行完毕向客户端发还响应或转到另一个文件为止。你能够使用Request对象访问Bean,好比request.getAttribute(beanInstanceName)
 

session - 从创建Bean开始,你就能在任何使用相同session的Jsp文件中使用Bean.这个Bean存在于整个Session生存周期内,任何在分享此Session的Jsp文件都能使用统一Bean.留意在你创建Bean的Jsp文件中<% @ page %>指令中必需指定session=true
 

application - 从创建Bean开始,你就能在任何使用相同application的Jsp文件中使用Bean.这个Bean存在于整个application生存周期内,任何在分享此application的Jsp文件都能使用统一Bean.
class="package.class"
使用new枢纽字以及class构造器从一个class中示例一个bean.这个class不能是抽象的,必需有一个公用的,没有参数的构造器.这个package的名字区别大小写。

type="package.class"
假如这个Bean已经在指定的范围中存在,那么写这个Bean一个新的数据库类型 。假如你没有使用class或beanName指定type,Bean将不会被示例.package和class的名字,区分大小写.

beanName="{package.class / <%= expression %>}" type="package.class"
使用java.beans.Beans.instantiate方法来从一个class或连续模版中示例一个Bean,同时指定Bean的类型。

beanName可以是package和class也可以是表达式,它的值会传给Beans.instantiate.tupe的值可以和Bean相同。

package 和 class 名字区分大小写.

======================================================================
回复

使用道具 举报

  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2011-7-31 22:22:07 | 显示全部楼层
    谢谢楼主分享。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-6-7 14:47 , Processed in 0.449527 second(s), 51 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表