Strtus2标签<s:url>

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

<s:url>就是解决这一问题的标签



<s:url>标签一般和超链接 <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>


<s:url>生成一个url地址,可以通过url标签制定的<s:param>子元素向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> 
    结果如下 
<a href="user/mainPage?id=123">url</a>

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值