文章目录
- jsp:forward
- jsp:include
- jsp:param
- jsp:useBean
- jsp:setProperty
- jsp:setProperty name="" property="" value=""
- jsp:setProperty name="" property="" param=""
- jsp:setProperty name="" property="*"
在 jsp 实例已经运行了,告诉 jsp 引擎做一些处理。jsp 中的活动元素不是 html 代码,而是 jsp 专有的代码,在转换成 Servlet 类时,用来生成一些 Java 代码。
jsp:forward
<jsp:forward page=""/>
转发,page 属性指定转发的地址。
jsp:include
<jsp:include page=""/>
一个 jsp 在运行过程当中,调用另外一个 jsp。
jsp:param
<jsp:param name="" value=""/>
设置参数,name 指定参数名 value 指定参数值。这个参数存储在 Request 对象中。
jsp:useBean
<jsp:useBean id="" scope="" class=""/>
在指定的范围绑订一个对象。
范围指的是四个对象 pageContext,request,session,servletContext。也就是说 scope 的值可以是"page",“request”,“session”,“application”。
<body>
<jsp:useBean id="computer" scope="page" class="priv.lwx.mall.shopping_cart.entity.Computer"/>
<%// scope指定page,则会将指定的类实例绑定到PageContext对象中,引用PageContext对象则使用变量pageContextComputer computer1 = (Computer) pageContext.getAttribute("computer");computer1.setModel("x200");
%>
<%--会自动调toString()方法--%>
<%=computer%>
</body>
下面这段代码干了什么?
<jsp:useBean id="computer" scope="page" class="priv.lwx.mall.shopping_cart.entity.Computer"/>
实际生成Java源代码如下:
priv.lwx.mall.shopping_cart.entity.Computer computer = (priv.lwx.mall.shopping_cart.entity.Computer)pageContext.getAttribute("computer");
if(computer == null){computer = new priv.lwx.mall.shopping_cart.entity.Computer();pageContext.setAttribute("computer",computer);
}
jsp:setProperty
jsp:setProperty name=“” property=“” value=“”
<jsp:setProperty name="" property="" value=""/>
示例:
<jsp:setProperty name="user" property="name" value="zs" />
依次从 PageContext、Request、Session、ServletContext 查找名称为 user 的属性,找到后则判断 user 的值是不是对象,如果是对象则查找该对象是否存在名称为 name 的属性,如果存在则将值 zs 赋值给属性 name。
jsp:setProperty name=“” property=“” param=“”
<jsp:setProperty name="" property="" param=""/>
依据请求参数给属性赋值。
<jsp:setProperty name="user" property="age" param="age" />
首先会先从 Request 对象中获取参数 age 的值,接着依次从 PageContext、Request、Session、ServletContext 查找名称为 user 的属性,找到后则判断 user 的值是不是对象,如果是对象则查找该对象是否存在名称为 age 的属性,如果存在则将参数 age 的值赋值给属性 age。
jsp:setProperty name=“” property=“*”
<jsp:setProperty name="" property="*"/>
使用"自省机制"给属性赋值。所谓“自省机制”就是会先从 Request 对象中获取参数值,然后将参数值赋值给 Bean 对象同名的属性。
例如,请求下面的地址,则会自动将参数 name 和 age 的值赋值给 Bean 对象同名的属性:
http://localhost:8080/web09/jsp11.jsp?name=xiaohei&&age=18