一、include动作指令
<jsp:include>标签表示包含一个静态的或者动态的文件。
语法:
<jsp:include page="文件路径" flush="true" />
或者
<jsp:include page="path" flush="true">
<jsp:param name="参数名1" value="参数1值" />
...............
<jsp:param name="参数名n" value="参数n值" />
</jsp:include>
注:
1、flush="true" 必须使用flush为true,它默认值是false。
2、<jsp:param>子句能让你传递一个或多个参数给动态文件,也可在一个页面中使用多个<jsp:param>来传递多个参数给动态文件。
二、forward动作指令
<jsp:forward>标签从一个JSP文件向另一个文件传递包含用户请求的request对象。
语法:
<jsp:forward page="文件路径" />
或者
<jsp:forward page="文件路径">
<jsp:param name="参数名1" value="参数1值" />
...............
<jsp:param name="参数名n" value="参数n值" />
</jsp:forward>
三、useBean动作指令
<jsp:useBean>标签表示用来在JSP页面中创建一个BEAN实例并指定它的名字以及作用范围。
语法:
<jsp:useBean id="name" scope="page | request | session | application" typeSpec />
其中typeSpec有以下几种可能的情况:
class="包名.类名" | class="包名.类名" type="typeName" | beanName="包名.类名" type="typeName"
在JSP中使用bean,class属性必须使用完全限定类名——包括包名的类名。不管你是否使用<%@ page import ...%>输入包,都要满足这个要求。
<jsp:useBean id=”book” class=”core.Book”/> 等价于 <%core.Book book=new core.Book();%>
仅当找不到相同id和scope的bean时,jsp:useBean元素才会实例化新的bean。如果存在相同id和scope的bean,则只是将已有的bean绑定到相关的变量(由id指定)。
我们可以不使用 <jsp:useBean…/>
转而使用 <jsp:useBean>statements</jsp:useBean>
使用第二种形式的意义在于,jsp:useBean的起始标签和结束标签之间的语句只是在创建新的bean时执行,如果使用已有的bean,则不执行。
四、getProperty动作指令
<jsp:getProperty>标签表示获取BEAN的属性的值并将之转化为一个字符串,然后将其插入到输出的页面中。
语法:
<jsp:getProperty name="bean的名称" property="属性名称" />
注:
1、在使用<jsp:getProperty>之前,必须用<jsp:useBean>来创建它。
2、不能使用<jsp:getProperty>来检索一个已经被索引了的属性。
3、能够和JavaBeans组件一起使用<jsp:getProperty>,但是不能与Enterprise Java Bean一起使用。
五、setProperty动作指令
<jsp:setProperty>标签表示用来设置Bean中的属性值。
四种语法格式:
<jsp:setProperty name="bean的名称" property="*" />
<jsp:setProperty name="bean的名称" property="属性名称"/>
<jsp:setProperty name="bean的名称" property="属性名称" param="参数值" />
<jsp:setProperty name="bean的名称" property="属性名称" value="属性值" />
第一种语法格式中,property="*",应用这种格式要求bean属性的名字与类型要和request对象中参数名称与类型一致,一次用bean中的属性来接收客户输入的数据,系统会根据名称来自动匹配。
第二种语法格式则指设置其中匹配的一个bean的属性。
第三种语法格式根据制定的request对象中的参数与属性匹配。
第四种语法格式用来给bean的属性赋值,属性值的数据类型要与属性的数据类型一致,否则会出错。字符串转换为其他数据类型的函数分别为:
转换为boolean Boolean.valueof(String str).booleanValue()
转换为byte Byte.valueof(String str).byteValue()
转换为char Character.valueof(String str).charValue()
转换为double Double.valueof(String str).doubleValue()
转换为float Float.valueof(String str).floatValue()
转换为int Integer.valueof(String str).intValue()
转换为long Long.valueof(String str).longValue()
注:使用 jsp:setProperty 来为一个Bean的属性赋值;可以使用两种方式来实现。
1、在jsp:useBean后使用jsp:setProperty:
<jsp:useBean id="myUser" … />
…
<jsp:setProperty name="user" property="user" … />
在这种方式中,jsp:setProperty将被执行。
2、jsp:setProperty出现在jsp:useBean标签内:
<jsp:useBean id="myUser" … >
…
<jsp:setProperty name="user" property="user" … />
</jsp:useBean>
在这种方式中,jsp:setProperty只会在新的对象被实例化时才将被执行。
在同一个setProperty动作指令中不能同时存在param和value参数。
六、plugin动作指令
这个动作指令用来在JSP中加载Java applet小程序。用<applet></applet>也可以是客户端下载并运行Java applet小程序,但有的浏览器不支持,如果Java applet小程序使用了这样的类,将无法执行。用plugin动作指令可以较好的解决这个问题。
语法:
<jsp:plugin
type="applet"
code="小程序的类文件"
codebase="小程序所在的位置"
[ height="小程序显示高度" ]
[ width="小程序显示宽度" ]
[ jreversion="虚拟机版本号" ]
[ <jsp:params>
[ <jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" /> ]+
</jsp:params> ]
[ <jsp:fallback> 客户端浏览器是否支持插件下载的提示信息</jsp:fallback> ]
</jsp:plugin>
注:
code参数是指小程序经过编译后的字节码文件,扩展名为.class。
codebase参数值出这个字解码文件所在的位置,可以是相对路径也可以是绝对路径,但在这个参数中不需要文件名,只需要目录路径就可以了,如果自己吗文件与调用的jsp文件在同一目录下,则此参数可以省略。