c:url标签

<c:url>标签

 

<c:url>标签的主要作用是按照特定的重写规则重新构造URL,它的基本语法为:

 

<c:url   value="原始URL"  var="存放新的URL的命名变量"   scope="{page|request|session|application}" /> 

<c:url>标签把重新生成的URL存放在var属性指定的命名变量中,并且scope属性指定命名变量的范围,它的默认值为page(页面范围)。

 

例如以下<c:url>标签在页面范围内创建一个myurl命名变量,它的值为"dir2/target.jsp":

 

<c:url value="dir2/target.jsp" var="myurl" /> 

例如以下<c:url>标签中的value属性以"/"开头,<c:url>标签会在重新生成的URL中加上当前Web应用的根路径,因此myurl命名变量的值为"/helloapp/dir1/dir2/ target.jsp":

 

<c:url value="/dir1/dir2/target.jsp" var="myurl" /> <a href="${myurl}" >target.jsp </a> 

在<c:url>标签中可以包含<c:param>子标签,用于设定请求参数,例如以下<c:url>标签包含两个<c:param>子标签,它们分别用于设定username请求参数和description请求参数:

 

<c:url value="/dir1/dir2/target.jsp" var="myurl" >   <c:param name="username" value="Tom" />   <c:param name="description" value="Age>10&Age<30" /> </c:url>  <a href="${myurl}" >target.jsp </a> 

<c:param>标签会对value属性中的特殊符号(如">"和"&")进行正确地编码。以上<a>标记生成的代码为:

 

<a href="/helloapp/dir1/dir2/target.jsp?username=Tom&description=  Age%3e10%26Age%3c30"> target.jsp </a> 

从以上代码可以看出,description参数值中的">"符号被编码为"%3e","&"符号被编码为"%26","<"符号被编码为"%3c"。

 

<c:param>标签的name属性设定请求参数名,value属性设定请求参数值,此外,也可以在标签主体内设定请求参数值。例如以下<c:param>标签主体判断username命名变量是否为"Tom",如果满足条件,就把role请求参数设为"Manager";如果username命名变量为空或者不是"Tom",就把role请求参数设为"Employee":

 

<c:url value="/dir1/dir2/target.jsp" var="myurl" >   <c:param name="role">     <c:if test="${username=='Tom'}">       Manager      </c:if>     <c:if test="${empty username || ! username=='Tom'}">       Employee      </c:if>   </c:param> </c:url>  <a href="${myurl}" >target.jsp </a> 

如果username命名变量为空,那么以上<a>标记生成的代码为:

 

<a href="/helloapp/dir1/dir2/target.jsp?role=Employee" >target.jsp </a>

 

 

 

 

来源:https://blog.csdn.net/home_zhang/article/details/8500708

posted @ 2018-04-23 23:15  baby孔祥超  阅读(805)  评论(0编辑  收藏  举报