概念
- JSP还提供了一种称之为Action的元素,在JSP页面中使用Action元素可以完成各种通用的JSP页面功能,也可以实现一些处理复杂业务逻辑的专用功能。
- Action元素采用XML元素的语法格式,即每个Action元素在JSP页面中都以XML标签的形式出现。
- JSP规范中定义了一些标准的Action元素,这些元素的标签名都以jsp作为前缀,并且全部采用小写,例如,、等等。
内容
- 标签
- 标签
- 标签
标签
- 标签用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为动态引入。
- 语法:
- 语法:
标签与include指令的比较
- 标签是在当前JSP页面的执行期间插入被引入资源的输出内容,当前JSP页面与被动态引入的资源是两个彼此独立的执行实体,被动态引入的资源必须是一个能独立被WEB容器调用和执行的资源。include指令只能引入遵循JSP格式的文件,被引入文件与当前JSP文件共同合被翻译成一个Servlet的源文件。
- 使用标签和include指令都可以把一个页面的内容分成多个组件来生成,开发者不必再把页眉和页脚部分的相同HTML代码复制到每个JSP文件中,从而可以更轻松地完成维护工作,但是都应注意最终的输出结果内容应遵循HTML语法结构,例如,如果当前页面产生了、、、等标记,那么在被引入文件中就不能再输出、、、等标记。
- 标签对JSP引擎翻译JSP页面的过程不起作用,它是在JSP页面的执行期间才被调用,因此不会影响两个页面的编译。由于include指令是在JSP引擎翻译JSP页面的过程中被解释处理的,所以它对JSP引擎翻译JSP页面的过程起作用,如果多个JSP页面中都要用到一些相同的声明,那么就可以把这些声明语句放在一个单独的文件中编写,然后在每个JSP页面中使用include指令将那个文件包含进来。
a.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>A Page</h1>
<%--
利用JSP的标签进行动态的引入:
1.有两个java源文件,自己是自己的
2.语法:
<jsp:include page="relativeURL | <%=expression%>" flush="true|false" />
3.说明:
page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。
flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端。
--%>
<jsp:include page="b.jsp"></jsp:include>
</body>
</html>
b.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<h1>B Page</h1>
结果:
标签
- 标签用于把请求转发给另外一个资源。
- 语法:
标签
- 当使用和标签引入或将请求转发给的资源是一个能动态执行的程序时,例如Servlet和JSP页面,那么,还可以使用标签向这个程序传递参数信息。
- 语法1:
<jsp:include page="relativeURL | <%=expression%>">
<jsp:param name="parameterName" value="parameterValue|<%= expression %>" />
</jsp:include>
- 语法2:
<jsp:forward page="relativeURL | <%=expression%>">
<jsp:param name="parameterName" value="parameterValue|<%= expression %>" />
</jsp:include>
- 标签的name属性用于指定参数名,value属性用于指定参数值。在和标签中可以使用多个标签来传递多个参数。
a.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>A Page</h1>
<%--
进行转发:
作用:<jsp:forward>标签用于把请求转发给另外一个资源。
语法:
<jsp:forward page="relativeURL | <%=expression%>" />
说明:
page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个表达式来获得。
优点:
相比于RequestDispatcher.forward,优势是可以使用jsp:param子标签向转发的页面传送一些参数
--%>
<%--
向b,jsp页面传送参数
注意:
1.JSP动作标志后面不能有注释(这段注释写在里面就会出现异常)
http://blog.sina.com.cn/s/blog_8acf1be1010179g9.html
2.JSP动作标志简化
http://stackoverflow.com/questions/2092665/jsp-expecting-jspparam-standard-action-with-name-and-value-attributes
3.当标签没有配对参数时,配对标签不能换行
http://blog.csdn.net/jeamking/article/details/6296919
--%>
<jsp:forward page="b.jsp">
<jsp:param value="123" name="numberAttr"/>
</jsp:forward>
</body>
</html>
b.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>B Page</h1>
<%-- 接收a.jsp传送过来的参数,和表格的输入参数获取是一样的 --%>
<%
String value = request.getParameter("numberAttr");
%>
<h2> <%= value %> </h2>
</body>
</html>
其它
- 源码下载
关注下方公众号,回复:javaweb_course.code
欢迎加入交流群:451826376
更多信息:www.itcourse.top