文章目录
  1. 1. 用法
  2. 2. 例子
  3. 3. includeParams属性
  4. 4. includeContext属性
  5. 5. Method属性
  6. 6. namespace属性
  7. 7. 从中传值
  8. 8.

在没有使用Struts2的时候可以使用el来进行url传参。而在Struts2中不推荐使用el(其实在Struts2.0.0.11之后就不再支持el)而推荐使用功能更为强大的ognl表达式语言。那么怎么使用ognl实现url传参?

就是解决这一问题的标签

用法

  1. 标签一般和超链接< a>一起使用,用于带多个参数。 ##

    <a href="  
      <s:url action="">  
       <s:param name=" " value=""></s:param>   
       <s:param name=" " value=""></s:param>   
       <s:param name=" " value=""></s:param>   
       </s:url>">测试连接
    </a>  
    
  2. 生成一个url地址,可以通过url标签制定的子元素向URL地址发送请求参数##

    <s:url action=""> 指定请求地址  
    <s:param name="" value=""></s:param> 指定参数</s:url>  
    

例子

<!--action是action的名字,为url添加参数使用param标签-->  

      <s:url var="url" action="mainPage">   
          <s:param name="id" value="123"/>   
      </s:url>   

      <!--使用上面定义的url-->   
      <s:a href="%{url}">测试连接</s:a>   

  该方法在生成的页面源码中生成如下代码   
  <a href="/NetBookShop_081029/mainPage?id=123">测试连接</a>   

includeParams属性

<!--最重要的属性includeParams,该属性有三个值:none get all,默认值为get-->   
        <!--属性值为get时,该url会将访问其所在jsp的的请求的所有get方法的参数添加到自身来-->   
        <!--属性值为all时更是将get和post的的参数值全部添加到自身来-->   
        <!--一般我们并不需要额外的参数,所以定义为none-->   
    <s:url var="url" action="mainPage" includeParams="none">   
            <s:param name="id" value="123"/>   
        </s:url>   

includeContext属性

 <!--includeContext:有true和false两个值。url中是否包含上下文,也就是在url中的项目名-->   
        <!--这个一般不用改,让它自动包含,否则会定位到服务器的根目录下-->   
        <s:url var="url" action="mainPage" includeContext="false">   
            <s:param name="id" value="123"/>   
        </s:url>   
    生成的url就下面的样子了,注意在普通的html中使用/会定位到服务器的根目录,而在struts的标签里使用/会自动添加上下文,所以不用麻烦的指定项目名   
<a href="/mainPage?id=123">url</a>   

Method属性

<!--method用于指定执行action的方法 这个等同于action="mainPage!ok"-->   
       <s:url var="url" action="mainPage" method="ok">   
           <s:param name="id" value="123"/>   
       </s:url>   

namespace属性

<!--指定命名空间后,生成的url会使用相对路径,具体的看我的结果-->   
       <s:url var="url" action="mainPage" namespace="user">   
           <s:param name="id" value="123"/>   
       </s:url>   
   结果如下   
lt;a href="user/mainPage?id=123">url</a>  

中传值

<s:iterator value="activities" id="a">
    <tr>
        <td><s:property value="id"/></td>
        <td><a href="<s:url action="/activityinfo">
            <s:param name="activityid" value="#a.id"></s:param>
        </s:url>">More</a></td>
    </tr>
</s:iterator>

本文转载于http://blog.csdn.net/yanwushu/article/details/7618723,原文出处不详!

文章目录
  1. 1. 用法
  2. 2. 例子
  3. 3. includeParams属性
  4. 4. includeContext属性
  5. 5. Method属性
  6. 6. namespace属性
  7. 7. 从中传值
  8. 8.