用s:url传送多个参数
用s:url传递多个参数今天练习时采用如下方法传递参数:s:url actionideamanager methodshowIdeaDetai
用s:url传递多个参数
今天练习时采用如下方法传递参数:
<s:url action="ideamanager" method="showIdeaDetail" var="showFirstPage">
? <s:param name="ideaId"><s:property value="ideaId" /></s:param>
? <s:param name="replyTurnNumber" value="-3" />
? </s:url>
<a href="<s:property value='#showFirstPage'/>">第一页</a>
结果调试进入后台后发现只有第一个参数ideaId传到了后台,而第二个参数replyTurnNumber没有传过去,查了半天,觉得是<a>标签的问题,于是换成了<s:a>标签,如下:
<s:a href='%{#showFirstPage}'>第一页</s:a>
这次再调试,发现两个参数均到了后台。果然是<a>标签有问题。
因此,我觉得传多个参数时还是用<s:a>标签与<s:url>标签配合比较好。
<s:url id="approveApplyInitURL" action="approvePurApplyInit"> <s:param name="itmsWfHistory.applyNo"> <s:property value="%{purApplyNo}" /> </s:param> <s:param name="itmsWfHistory.taskSid"> <s:property value="%{wfTaskSid}"/> </s:param> </s:url> <s:if test="status==1"><s:a href="#" onclick="javascript:popupWindow('applyApproveWin','%{#approveApplyInitURL}','审批',400,300);"><s:property value="statusStr"/></s:a></s:if>
后台uri为:
uri=/equip/equipPurApply/approvePurApplyInit.action?itmsWfHistory.applyNo=CGA%2F2011-01-11%2F002
&itmsWfHistory.taskSid=6&time=1294774045328
结果TM就报:
<s:url id="approveApplyInitURL" action="approvePurApplyInit"> <s:param name="itmsWfHistory.applyNo"> <s:property value="%{purApplyNo}" /> </s:param> <s:param name="itmsWfHistory.taskSid"> <s:property value="%{wfTaskSid}"/> </s:param> </s:url> <s:if test="status==1"><s:a href="#" onclick="javascript:popupWindow('applyApproveWin','%{#approveApplyInitURL}','审批',400,300);"><s:property value="statusStr"/></s:a></s:if>
后台uri为:
uri=/equip/equipPurApply/approvePurApplyInit.action?itmsWfHistory.applyNo=CGA%2F2011-01-11%2F002
&itmsWfHistory.taskSid=6&time=1294774045328
结果TM就报:
引用
01/12/2011 03:27:25.703 ERROR ParametersInterceptor,204 - ParametersInterceptor - [setParameters]: Unexpected Exception caught setting 'amp;itmsWfHistory.taskSid' on 'class com.sgai.itms.equipment.web.ItmsPurApplyAction: Error setting expression 'amp;itmsWfHistory.taskSid' with value '[Ljava.lang.String;@1505b41'
struts2标签真的TM很是让人郁闷。
补充:现象如你,只拿到了<s:url>中的第一个参数。。。 3 楼 Wuaner 2011-01-12 传过来时,将参数间连接符&处理成了
&可是TM ParametersInterceptor做参数拦截的时候,却只用
&去分割参数,结果就是第二个参数
param2变成的
amp;param2,抛给TM我一个ParametersInterceptor ERROR,这算tm什么事啊! 4 楼 Wuaner 2011-01-12
再回复:
按楼主的方式,<s:a>采用<s:a href="%{#approveApplyInitURL}">的方式,是可以将两个参数都不出问题的传到后台的。。。
但我想要的不是这种跳转的效果,我要的是弹出框!!!!!该当如何是好。。。。