薛磊 Job Seeker

JSP动作标签


二、JSP动作标签

可以替代部分java代码

<%
int a=1;
int b=2;
request.setAttribute("a",a);
request.setAttribute("b",b);
%>
<!-- 转发forward指令 -->
<jsp:forward page="otherPage.jsp">
    <!-- 简单传参 -->
	<jsp:param name="username" value="michael" />
    <jsp:param name="hobbies" value="swim" />
    <jsp:param name="hobbies" value="running" />
    <jsp:param name="hobbies" value="basketball" />
</jsp:forward>

<!-- otherPage.jsp -->
request中的属性值有:<br>
a=${a }<br>
b=${b }<br>
request的参数值有:<br>
用户名:${param.username }<br>
爱好1:${paramValues.hobbies[0] }&nbsp;&nbsp;
爱好2:${paramValues.hobbies[1] }&nbsp;&nbsp;
爱好3:${paramValues.hobbies[2] }&nbsp;&nbsp;
<!-- include将另一个页面的内容包含进来,并且能够传值-->
<jsp:include page="otherPage.jsp">
	<jsp:param name="username" value="zhangsan" />
    <jsp:param name="password" value="123456"/>
</jsp:include></jsp:include>
<hr color="red" />

<%@ include file="otherPage.jsp" %>

JSP include指令 和 JSP标签的include动作的区别?

include指令是”静态的”,它先把另一个页面的内容复制到本页面,再作为一个页面运行。

JSP的include动作是”动态的”,它在本页面运行到include标签时,再找到另外一个页面,让它运行结果纳入到本页面

<%
	UserInfo user = new UserInfo();
	request.setAttribute("user",user);
%>

<!-- 
	jsp:userBean是标签
	id是键值对的键名
	class是对应类
	scope是作用域
-->
<jsp:userBean id="user" class="cn.dlian.entities.UserInfo" scope="request" />
<jsp:setProperty name="user" property="USER_ID" value="1" />
<jsp:setProperty name="user" property="USER_NAME" value="张三" />
<jsp:setProperty name="user" property="USER_PASS" value="123456" />
<jsp:setProperty name="user" property="USER_ROLE" value="MANAGER" />

<!-- 另一个页面获取 EL表达式常用,简单 -->
通过EL表达式获取:<br>
id:${user.USER_ID }<br>
用户名:${user.USER_NAME }<br>

通过jsp标签获取:<br>
<!-- 使用getProperty来获取四大作用域中对象的属性时,需要userBean引用一下该对象 -->
<jsp:userBean id="user" class="cn.dlian.entities.UserInfo" scope="request" />
id:<jsp:getProperty name="user" property="USER_ID"/><br>
用户名:<jsp:getProperty name="user" property="USER_NAME"/><br>
<jsp:forward page="login.jsp">
	<jsp:param name="userId" value="1" />
    <jsp:param name="userName" value="zhangsan" />
    <jsp:param name="userPass" value="123456" />
    <jsp:param name="userRole" value="1" />
</jsp:forward>

<!-- 可以将上个页面传来的参数封装在userBean对象中 -->
<jsp:userBean id="user" class="cn.dlian.entities.UserInfo" scope="request" />
id:<jsp:getProperty name="user" property="USER_ID" param="userId"/><br>
用户名:<jsp:getProperty name="user" property="USER_NAME" param="userName"/><br>
密码:<jsp:getProperty name="user" property="USER_PASS" param="userPass"/><br>
身份:<jsp:getProperty name="user" property="USER_ROLE" param="userRole"/><br>
在EL表达式中,直接使用运算符:<br>
${1 + 2}<br>
${1 < 2}<br
${c == null}
比较空字符串:
${empty c}		${!empty c}

上一篇 EL表达式

下一篇 JSTL

Comments

Content