我也刚开始用struts!
好像link标签不是一个嵌入式标签,所以不可以象1的用法那样在link标签之间嵌入另一个标签,如果你的param是个动态的,那么可能就得扩展struts的link标签了,我是这么做的,可能是比较笨的方法了。
不知道是否有更简洁的方法实现动态参数的link标签?
好像link标签不是一个嵌入式标签,所以不可以象1的用法那样在link标签之间嵌入另一个标签,如果你的param是个动态的,那么可能就得扩展struts的link标签了,我是这么做的,可能是比较笨的方法了。
不知道是否有更简洁的方法实现动态参数的link标签?
解决方案 »
- 关于java在cmd上运行和环境变量的问题?
- jdbc连接SqlServer2008
- 为什么很多公用的jar包后面都会加上4j
- 动态ActionForm的缺点
- 选型的问题: 能否大致比较一下weblogic和websphere的优劣?
- 问银行系统(java语言)
- weblogic部署ejb的问题
- 我从网上下了hibernate3.1解压之后,在lib目录下怎么找不到hibernate3.jar这个包呢?他们居然没有附带这个包?
- 紧急求救!!
- 在Session bean 中引用cmp中的函数
- struts 应用模块讨论,欢迎各位大侠进来!
- 启动resin + struts后出来exception???
^@^
比如:
<html:link action="/prepareLogic?param=<%=Varibles%>">
Redisplay page with parameter present.
</html:link>
Double and long via hard coded changes
</html:link><html:link page="/html-link.do"
paramId="stringProperty" paramName="newValue">
String via paramId and paramName
</html:link><html:link page="/html-link.do?doubleProperty=321.321&longProperty=321321">
Some Words
</html:link>
1、其中有一个是固定值:
<html:link page="/html-link.do?A=固定值"
paramId="stringProperty" paramName="newValue">
2、如果不是固定值:
<html:link page="/html-link.do?<%= A.B()>"
paramId="stringProperty" paramName="newValue">3、带多个数据,用不用<html:link>都差不多,直接用<a href=>加<%= >"还好看。
方法一:name、property、scope三个参数决定了超链接的若干参数值对,是个Map结构,如:当前超链接需要3个参数:param1,param2,param3, 都是动态设置的,那么你可以在action中将这三个参数组装并放入一个Map结构中,然后再将它保存到request中,假设属性名为'test'这样你就可以在jsp中调用:<html:link action="test.do" name="test" scope="request"/>,这样最终生成的超链接是:<a href="test.do?param1=value1¶m2=value2¶m3=value3"></a>. 另外在Map结构中的每个参数的值可以是String类型和其它Object类型(值将转换成String),或String[]数组,如果是string数组,那么string数组的值都将作为参数设置到href中,如加入一个param4,值为数组[1,2],那么href应该加入¶m4=1¶m4=2.方法二:paramId,paramName,paramProperty,paramScope四个参数是用来设置单一href参数的,其中paramName,paramProperty,paramScope决定了href参数的值,paramId决定href参数名,就像上面例子中如果只需要param1参数,那么就可以将这个param1保存在request的test属性中,在jsp端调用:<html:link action="test.do" paramId="param1" paramName="test" paramScope="request"/>,生成的连接是<a href="test.do?param1=value1"></a>.
另外struts还支持上面两种参数设置的同时使用,如果使用方法二的paramId如果包含在方法一的Map中,那么,方法一的Map中包含的paramId参数的值必须是String或String数组类型,如果是String类型,将把两个值放到一起生成String数组,如果是String数组,那么把这个值加到String数组的末尾。举个例子:在方法一的例子基础上,执行action时,在request中放入另外一个属性test2=valuenew, 在jsp端获得该属性,并把该属性作为超链接的param1参数与Map传递过来的param1属性组合:<html:link action="test.do" name="test" scope="request" paramId="param1" paramName="test2" paramScope="request">,生成的超链接为:<a href="test.do?param1=value1¶m1=valuenew¶m2=value2¶m3=value3"></a>
不好意思,我不善于描述问题,不知道大家能不能看明白,也不知道有没有说错的地方,请大家指正!