关于给Struts的Html link标签的action(或者page、href)属性设置多个动态参数的解决办法...

相信大家对于Struts 1.x中的html:link标签非常熟悉。一般的使用方法是这样子的:

  1. LinkObject linkObject  = new LinkObject();   
  2. linkObject.setName("monoxide");   
  3. request.setAttribute("linkObject",linkObject);   
  4.   
  5.   < html:link href="test.jsp" paramName="linkObject" paramId="realName" paramProperty="name" paramScope="request">测试 Object< /html:link>


      

这个表示方法是:

从request中取出linkObject的name的值,然后以realName的参数形式加到test.jsp后面,最后生成的代码看起来是这个样子:test.jsp?realName=monoxide

这种方法虽然简单,但是有一个缺陷。那就是只能从linkObject中取出一个值来,如果想取2个或者2个以上属性追加到参数后面,该方面就无能为力了。

在研究了struts html link源代码后,发现有个name属性可以利用,但是该属性的值只能放置map类型的对象,而不能放置普通的Object。代码如下:

java 代码

 

  1. Map map = new HashMap();   
  2. map.put("name","一氧华碳");   
  3. map.put("email","monoxide@gmail.com");   
  4. request.setAttribute("map",map);   
  5.   
  6.    < html:link href="test.jsp" name="map" useLocalEncoding="true">测试 Map< /html:link>
     

 

 最后生成的Link:test.jsp?email=monoxide%40gmail.com&name=%D2%BB%D1%F5%BB%AA%CC%BC

特别注意:useLocalEncoding 该属性如果为true,则以系统的编码来urlencode。如果为false,则以utf-8的编码。默认为false

完整测试代码见附件!

如果没有特别注明,本Blog文章岂为原创。

转贴请注明出处:    http://netbus.iteye.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值