`
x125521853
  • 浏览: 71588 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

第二章 JSTL变量

    博客分类:
  • Jstl
阅读更多

一:要使用C标签库,首先得在JSP页面加入:

       <%@ taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c"%>

二:Core核心标签库

      运算符:out,set,remove,catch

      流程控制:if,choose,when,otherwise

      循环:forEach,forTokens

      URL操作:import,param,redirect,url

三:<c:out>

      主要用来显示内容,就像是<%=%>一样。

      如:hello!<c:out value="${username}">

   //servlet页面    

package com.action;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ChapterServlet extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html");
		request.setAttribute("name", "李四");
		request.getRequestDispatcher("chapter2.jsp").forward(request, response);
	}
}

  //jsp页面 

<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib  uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>chapter2.jsp</title>
   </head>
  <body>
  	<div>
   		<div>
  			<c:out value="${name}"></c:out>
  		</div>
  	</div>
   </body>
</html>

    导航:http://localhost:8080/jstl/Chapter2Servlet先导航servlet,再由servlet跳转jsp页面。

 

   将后台servlet改为

   request.setAttribute("name", "李<b>四</b>");

   将前台jsp页面改为

    <c:out value="${name}"></c:out>

   输出结果为:李<b>四</b>

 

   如果将前台jap改为:

    <c:out value="${name}" escapeXml="false"></c:out>

    输出结果:李 (四字加粗)

    可以看到escapeXml默认值为true,转换,可以设置为false,不转换,不转换页面就会解析html代码。

 

   如果后台servlet没有值

   前台:<c:out value="${name}" default="无名氏"></c:out>

   输出结果:无名氏

   说明当从四个范围内取不到值得时候,默认值起作用。

   如果没有设置默认值,当取不到值或取到null时,则显示“”

 

四:<c:set/>

    主要用来将变量存储在四个范围之中

     此标签有五个属性:

     value:要存储的值内容

     var:给存储的值起变量名

     scope:可以指定四个page,request,session,application范围其中之一。

     target:可以指定JavaBean

     property:指定JavaBean属性

 

    语法一:

    将value的值,存储在四个范围其中之一,默认为page

     <c:set var="name" value="张三"/>

     ${name}

    语法二:

     将name存储在session范围中,然后在其它页面中取出查看    

<c:set var="userName" value="张三" scope="session" />
<c:set var="userName" value="李四" scope="request" />
<jsp:forward page="a.jsp"></jsp:forward>

   其它页面中取出

   ${name}可以看到取出request范围中的值

    a.jsp中分别取出:

    request:${requestscope.userName}

    session:${sessionscope.userName}

 

五:<c:remove />

   语法: <c:remove var="" scope=""/>
    var指定变量, scope指定范围

    示例:  

<c:set var="userName" value="张三" />
<c:set var="userName" value="李四" scope="request" />
<c:set var="userName" value="王五" scope="session" />
显示:
<br />
<c:out value="${pageScope.userName}" />
<br />
<c:out value="${requestScope.userName}" />
<br />
<c:out value="${sessionScope.userName}" />
<br />
<br />
移除page中的userName
<br />
<c:remove var="userName" scope="page" />
<c:out value="${pageScope.userName}" default="无名氏" />
<br />
<c:out value="${requestScope.userName}" />
<br />
<c:out value="${sessionScope.userName}" />
<br />
<br />

 

  页面1  

<c:set var="userName" value="张三" />
<c:set var="userName" value="李四" scope="request" />
<c:set var="userName" value="王五" scope="session" />
<jsp:forward page="a.jsp"></jsp:forward>

  页面2 

移除request中的userName
<br />
<c:remove var="userName" scope="request" />
<br />
page:<c:out value="${pageScope.userName}" default="page无名氏"></c:out><br />
request:<c:out value="${requestScope.userName}" default="request无名氏"></c:out><br />
session:<c:out value="${sessionScope.userName}" default="session无名氏"></c:out><br />

 

  如果不指定移除范围 

<c:set var="userName" value="张三" />
<c:set var="userName" value="李四" scope="request" />
<c:set var="userName" value="王五" scope="session" />
<br/>
<c:remove var="userName"/>
page:<c:out value="${pageScope.userName}" default="page无名氏"></c:out>	<br />
request:<c:out value="${requestScope.userName}" default="request无名氏"></c:out><br />
session:<c:out value="${sessionScope.userName}" default="session无名氏"></c:out><br />

   可以看到,如果不带范围的话,会删除所有范围内同名的变量.

 

六:<c:catch/>错误处理

    示例:   

<c:catch var="error_Message">
	<%
		int i = Integer.parseInt("a");
	%>
</c:catch>
${error_Message}

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics