用html:link传递多个参数

在开发JSP时,经常用到像test.jsp?param1=value1&param2=value2&param3=value3这样的链接。通常我们可能这样做:

<a href="test.jsp?param1=<%=value1%>&param2=<%=value2%>&param3=<%=value3%>">link</a>

当只有一两个参数时,这倒成不了问题,但当有十个以上的参数要传递时(有时这是不可避免的)就不同了,而且容易出错,虽然调试起来很方便就知道有没有错了,但谁也不会愿意在这个地方耗费精力的。即使是那么一点。

那么在Struts中又是怎样呢?

当然,你可以像上面提到的那样去做,没有问题。但是否有更好的方法?的确是有的。从<html:link>的定义我知道,它允许我放入一个HashMap,因为我用的是动态FORM,我试着这样做

<%
java.util.HashMap newValues = (HashMap)(( org.apache.struts.validator.DynaValidatorForm)request.getAttribute("searchRoadbill")).getMap();
%>

这使我得到一个HashMap,也许还有更好的方法取得它,但我用了一个我最快想到的方法。然后该做什么呢?

嘻嘻,把它放到页作用域中去

pageContext.setAttribute("links",newValues);

最后:

<html:link href="afaa.jsp" name="links">dsfasfa</html:link>

这样,就生成一个这样的连接:

<a href="afaa.jsp?receiveDeptName=&amp;pre_SendDate=&amp;pre_FillBillDate=&amp;receiveDept=&amp;suf_SendDate=&amp;suf_FillBillDate=&amp;roadbillId=&amp;status=1201">dsfasfa</a>

这里的receiveDeptName,pre_SendDate等都是从form里去定义的。当它有值时输出如status=1201,如果没有值就为空。

http://localhost:7001/transit/afaa.jsp?receiveDeptName=&pre_SendDate=&pre_FillBillDate=&receiveDept=&suf_SendDate=&suf_FillBillDate=&roadbillId=&status=1201

后记:

在这里,我没有限制自己必须使用标记库,也没有明确的告诉自己该怎样去写JSP页面,反正我觉得,该怎么方便就怎么用。

资源:http://struts.apache.org/userGuide/struts-html.html#link

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值