`
andrew.yulong
  • 浏览: 166777 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

struts标签在URI后面传参数的问题

阅读更多

关于<html:link>标签在URI后面传参数的问题

在struts标签<html:link>的page属性指定的URI后面传递参数可以有几种方式:

1.若明确参数名和参数值则直接在URI后输出,
如:<html:link page="/test.do?action=add">add</html:link>

2.对于参数值不确定的,paramName和paramProperty来输出,用paramId属性指定参数名。
对于paramName指定的对象应该存在于page、request、session、application其中之一。一般来说,是从Action类传过来的,作为request的属性之一(requst.setAttribute("name",object))。
如果paramName指定的对象是action的ActionForm,则无需使用request.setAttribute方法。
例:<html:link page="/test.do" paramId="userid" paramName="uid">uname</html:link>
若参数值是一个bean对象的属性值(比如ActionForm,或者集合中存放的对象)则:
<html:link page="/test.do" paramId="userid" paramName="user" paramProperty="uid">uname</html:link>

3.若两个参数,一个确定一个不确定,则是以上两种方法的结合,即:
<html:link page="/test.do?action=modify" paramId="userid" paramName="uid">modify</html:link>

4.对于多个参数的问题,可以使用一个HashMap集合对象来存放所有的参数名及对应的参数值的方式,paramName属性值指定为该HashMap集合对象即可。
举例:
<%
//代码理想的位置应该是在action中
//可以在jsp页面测试
  java.util.HashMap pms = new java.util.HashMap();
  pms.put("code", "001002");
  pms.put("name", "tester");
  pms.put("alias", new String[]{"matin","jack"});
  request.setAttribute("params", pms);
%>
<html:link action="/test.do" name="params" >test</html:link>
编译后的结果:<a href="/test.do?code=001002&name=tester&alias=matin&alias=jack">test</a>
这种方式虽然可以解决传多参数的问题,但是实现起来也比较麻烦,特别是对记录集中的数据逐条列出的时候

5.针对有的网友在<html:link>标签中嵌入使用jsp脚本(scriptlet)的问题,
例如:
<html:link page="/test.do?code=<%=varible%>">add</html:link>,这种写法是错误的,是无法编译的。
有的网友认为在struts标签内是不允许使用jsp脚本的,这种说法也不准确。如果前面的写法改成:
<html:link page="<%="/test.do?code="+varible%>">add</html:link>,就可以被执行,但是要注意URL相对路径的问题。

虽然在struts标签中嵌入jsp脚本不是真正意义上的struts应用,但是有时在委曲求全的情况下也只能如此了,除非使用自定义标签。比如在form表单中可能需要根据具体数据让某个字段是只读的,就可以用嵌入jsp脚本来实现:
<%
boolean rdonly=false;
if(2==2) rdonly=true;
%>
<html:text property="userid" readonly="<%=rdonly%>" />

6.另外一种比较变态的方法,既不是真正意义上的struts,也不符合xml规范。那就是在<a>标签中用<bean:write>标签输出参数值。
如:<a href="test.do?uid=<bean:write name="user" property="userid"/>&name=<bean:write name="user" property="username"/>">test</a>
 

分享到:
评论

相关推荐

    struts2标签库

    struts2 标签 国际化 文件上传 校验 拦截器 struts2.0的标签库(简介) ...而struts2.0里的标签却没有分类,只用在jsp头文件加上 &lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; 就能使用struts2.0的标签库

    struts2 标签库 帮助文档

    &lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; 就能使用struts2.0的标签库 下面就介绍每个标签的具体应用实例说明:按字母排列 A: 1. 2. &lt;s:a href=""&gt;&lt;/s:a&gt;-----超链接,类似于html里的&lt;a&gt;&lt;/a&gt; 3. ...

    Struts2标签库

    &lt;%@ taglib uri="/struts-tags" prefix="s" %&gt; 结合例子,重点掌握以下标签的用法 (1) (2) (3) &lt;s:if&gt; 、、 (4) (5) (6) 、 (7) 、、、 (8) 、、&lt;s:checkboxlist&gt;

    struts标签库

    面并显示其内容,现在利用Struts 2的action标签,可以直接在页面发出该请求,并 在发送请求的页面显示“success.jsp”的内容,页面并没有跳转到“success.jsp”。 调用action标签页面action.jsp的代码为: ...

    struts2-s标签

    那就从简单的标签说起吧!1.x中常用的标签只有4中html、bean、logic、tiles ...&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; 就能使用struts2.0的标签库 下面就介绍每个标签的具体应用实例说明:按字母排列

    struts2的标签库

    &lt;%@ taglib prefix="s" uri="/struts-tags"%&gt; struts2的标签共分为五大类: 一、逻辑控制标签 用于进行逻辑控制输出。主要分以下几类: 1)条件标签:用于执行基本的条件流转 &lt;s:if&gt;:拥有一个test属性,其表达式的值...

    struts2.0的标签学习资料

    struts2.0的标签学习 关键字: struts2 标签 用过struts1.x的人都知道,标签库有...而struts2.0里的标签却没有分类,只用在jsp头文件加上 &lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; 就能使用struts2.0的标签库

    struts2 学习例子

    Struts2的标签库有一个巨大的改进之处,struts2标签库的标签不依赖于任何表现层技术,也就是说strtus2提供了大部分标签,可以在各种表现技术中使用。包括最常用的jsp页面,也可以说Velocity和FreeMarker等模板技术...

    Ajax uri 乱码问题总结

    Ajax uri 乱码问题总结

    struts2.0的标签库

    而struts2.0里的标签却没有分类,只用在jsp头文件加上 &lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; 就能使用struts2.0的标签库

    Struts2标签库的所有

    &lt;%@ taglib uri="/struts-tags" prefix="s" %&gt; 结合例子,重点掌握以下标签的用法 (1) (2) (3) &lt;s:if&gt; 、、 (4) (5) (6) 、 (7) 、、、 (8) 、、&lt;s:checkboxlist&gt;

    struts 标签 logic:iterate使用 logic:iterate

    我就是靠这个文档实现logic:iterate的循环的 struts 标签 logic:iterate使用 logic:iterate &lt;br&gt;第一页 是struts官方的说明, 第二页 是个例子 第三页 是我实现的arrayList放入标签的方法。 这是页面...

    redirect_uri参数错误的解决方法(必看)

    您可能感兴趣的文章:浅谈在django中使用redirect重定向数据传输的问题基于vue-router 多级路由redirect 重定向的问题Spring 重定向(Redirect)指南及相关策略问题详解Java从后台重定向(redirect)到另一个项

    一个struts的action跳转大全

    首先,Struts的ActionServlet接收到一个请求,然后根据struts-config.xml的配置定位到相应的mapping (映射);接下来如果form的范围是request或者在定义的范围中找不到这个form,创建一个新的form实例;取得form...

    Uri一个URI处理库

    Uri - 一个URI处理库

    androdi ContentProvider和Uri详解

    androdi ContentProvider和Uri详解

    uri-tag:ES6模板文字标签,用于编码URI组件

    尿标签 用于编码URI组件。 允许您构建一个URI字符串,在该字符串中任何表达式都将被安全地编码。 import uri from 'uri-tag' ;const name = getName ( ) ; // Arbitrary user inputconst status = getStatus ( ) ; /...

    URL参数拼接类

    URL参数拼接, URL参数拼接, URL参数拼接, URL参数拼接, URL参数拼接

    URI:Escape模块,awstats搜索的关键字的乱码问题解决

    之所以搜索的关键字句会变成乱码的原因,主要是因为现在的搜索引擎都是使用UTF8,而Awstats是使用decodeUTFkeys这个plugin来处理搜索引擎的UTF8关键字,默认是没有打开的,所以在显示上会出现乱码。 要解决中文...

    js传参数受特殊字符影响错误的解决方法

    encodeURI(URIString) 必选的 URIString 参数代表一个已编码的 URI。 说明 encodeURI 方法返回一个编码的 URI。如果您将编码结果传递给 decodeURI,那么将返回初始的字符串。encodeURI 方法不会对下列字符进行编码...

Global site tag (gtag.js) - Google Analytics