ognl标签里面有个url标签,该标签和jstl的url标签功能差不多。
不过ognl这个更方便。
value值代表生成的url地址,var是个临时变量
<s:url value="/demo" var="url1"></s:url>
使用el表达式把该值打印出来。
${url1}
结果显示。
/struts/demo
这里的struts代表项目名,/demo就是上面的value值。
这个是一个最简单的演示。
第二个:
<s:url value="/demo" var="url2"> <s:param name="user" value="‘user‘"></s:param> </s:url>
使用EL打印出来的结果 ${url2}
/struts/demo?user=user
生成了一个get方式的请求参数。
上面的值是全部打印出来了 ,再看下面这个 ,开始和上面有点不同了。
<s:url value="/demo" var="url2"> <s:param name="user" value="user"></s:param> </s:url>
使用EL打印出来的结果 ${url2}
/struts/demo
这个结果为什么会是这样呢?基本和上面的方式一样,为什么上面能显示出来,下面的显示不出来?
这个就是struts2的ongl标签强制将该字符串(user)转成对象属性,查看对象属性有没有这个属性。它把这个当成一个变量来执行了,但是栈里面没有这个值,当然也就打印不出来了。
如果想要将user这个值不让ognl解析成属性,直接在上面加个单引号,它就不会解析了,如果value值里面是个数字的话,就不需要写单引号了。
第三个:
使用action动作生成url
<s:url action="demo" namespace="/default" method="save" var="url3"></s:url>
/struts/default/demo!save.action
struts是项目名 default是namespace名称 demo是action名称 save是方法
------------------------------------------------------------------
还有 includeParams 属性 这个后面再写。
本文出自 “music” 博客,请务必保留此出处http://boysmusic.blog.51cto.com/9398683/1766505
原文地址:http://boysmusic.blog.51cto.com/9398683/1766505