通过动作影响输出的文本流,使用、编辑、建立对象。id属性和scope属性是每一个JS 动作都具有的属性,其中id表示一个动作的名称,而scope则表示一个动作的作用域。
scope作用域的取值:
page:由javax.servlet.jsp .PageContext得到,在用户请求此页面的过程中有效
request:由ServletRrequest.getAttribute(name)得到,在用户的整个请求过程中有效
session:由HttpSession.getValue( name)得到,在用户的整个会话期内有效
application:由ServletContext.getAttribute(name)得到,在We b应用程序执行期间有效
JSP动作包括:
jsp:include:在页面被请求的时候引入一个文件。
jsp:useBean:寻找或者实例化一个JavaBean。
jsp:setProperty:设置JavaBean的属性。
jsp:getProperty:输出某个JavaBean的属性。
jsp:forward:把请求转到一个新的页面。
jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。
一、Jsp:forward
表示重定向一个静态html/jsp的文件,或者是一个程序段。
语法:
注:
1、page="path" 为一个表达式,或者一个字符串。
2、<jsp:param> name 指定参数名,value指定参数值。参数被发送到一个动态文件,参数可以是一个或多个值,而这个文件却必须是动态文件。要传递多个参数,则可以在一个JSP文件中使用多个<jsp:param>将多个参数发送到一个动态文件中。</jsp:param></jsp:param>
- <jsp:forward page="/utils/errorReporter.jsp" />
- <jsp:forward page="<%= someJavaExpression %>" />
<o:p><o:p>二、Jsp:include</o:p></o:p>
<o:p><o:p> 表示包含一个静态的或者动态的文件。
语法: 1、page="path" 为相对路径,或者代表相对路径的表达式。
2、flush="true" 必须使用flush为true,它默认值是false。
3、<jsp:param>子句能让你传递一个或多个参数给动态文件,也可在一个页面中使用多个<jsp:param>来传递多个参数给动态文件。</jsp:param> </jsp:param></o:p></o:p>
例子:
- <jsp:include page="path" flush="true" />
- or
- <jsp:include page="path" flush="true">
- <jsp:param name="paramName" value="paramValue" />*
- jsp:include>
- <html>
- xy
- <jsp:include page="X.jsp" flush="true"/>
- </html>
<o:p><o:p>三、Jsp:usebean</o:p></o:p>
<o:p><o:p> 表示用来在JSP页面中创建一个BEAN实例并指定它的名字以及作用范围。
</o:p></o:p><o:p><o:p>例子:创建一个由class属性指定的类的实例,然后把它绑定到其名字由id属性给出的变量上。</o:p></o:p>
- <jsp:useBean id="name" scope="page | request | session | application" typeSpec />
注:
1. id 命名引用该Bean的变量。如果能够找到id和scope相同的Bean实例,jsp:useBean动作将使用已有的Bean实例而不是创建新的实例。
2. class 指定Bean的完整包名。
3. scope 指定Bean在哪种上下文内可用,可以取下面的四个值之一:page,request,session和application。 默认值是page,表示该Bean只在当前页面内可用(保存在当前页面的pageContext内)。
4. 必须使用class或type,而不能同时使用class和beanName。beanName表示Bean的名字,其形式为“a.b.c”。
5. class="className" | class="className" type="typeName" | beanName="beanName" type="typeName" | type="typeName"
- <jsp:useBean id="name" class="package.class" />
<o:p><o:p>四、Jsp:setproperty
表示用来设置Bean中的属性值。需要注意的是,在这个动作中将会使用到的name属性的值将是一个前面已经使用动作引入的avaBean的名字。
语法:1. 其中prop_expr有以下几种可能的情形:property="*" | property="propertyName" | property="propertyName" param="parameterName" | property="propertyName" value="propertyValue"
有两种用法。
首先,你可以在jsp:useBean元素的外面(后面)使用jsp:setProperty,此时,不管jsp:useBean是找到了一个现有的Bean,还是新创建了一个Bean实例,jsp:setProperty都会执行。如下所示: </o:p></o:p>
- <jsp:setProperty name="beanName" prop_expr />
- <jsp:useBean id="myName" ... />
- ...
- <jsp:setProperty name="myName" property="someProperty" ... />
第二种用法是把jsp:setProperty放入jsp:useBean元素的内部,此时,jsp:setProperty只有在新建Bean实例时才会执行,如果是使用现有实例则不执行jsp:setProperty。如下所示:
- <jsp:useBean id="myName" ... >
- ...
- <jsp:setProperty name="myName" property="someProperty" ... />
- </jsp:useBean>
五、jsp:getProperty
表示获取BEAN的属性的值并将之转化为一个字符串,然后将其插入到输出的页面中。
语法: 1、在使用<jsp:getproperty>之前,必须用<jsp:usebean>来创建它。
2、不能使用<jsp:getproperty>来检索一个已经被索引了的属性。
3、能够和JavaBeans组件一起使用<jsp:getproperty>,但是不能与Enterprise Java Bean一起使用。
4. </jsp:getproperty></jsp:getproperty></jsp:usebean></jsp:getproperty>jsp:getProperty有两个必需的属性,即:name,表示Bean的名字;property,表示要提取哪个属性的值。
六、Jsp:plugin动作
表示执行一个applet或Bean,有可能的话还要下载一个Java插件用于执行它。当Jsp文件被编译,送往浏览器时,<jsp:plugin>元素将会根据浏览器的版本替换成ojbect或者embed元素。注意,object用于HTML 4.0 ,embed用于HTML3.2。</jsp:plugin>
语法:
- <jsp:getProperty name="name" property="propertyName" />
- <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>