我也刚开始用struts!
好像link标签不是一个嵌入式标签,所以不可以象1的用法那样在link标签之间嵌入另一个标签,如果你的param是个动态的,那么可能就得扩展struts的link标签了,我是这么做的,可能是比较笨的方法了。
不知道是否有更简洁的方法实现动态参数的link标签?

解决方案 »

  1.   

    我也Up一下我也Up两下!!!
    ^@^
      

  2.   

    同一楼上,可以参考一下struts的源代码
      

  3.   

    对,link标签不支持嵌入!可以用<%%>代替阿
    比如:
    <html:link action="/prepareLogic?param=<%=Varibles%>">
        Redisplay page with parameter present.
      </html:link>
      

  4.   

    <html:link page="/html-link.do?doubleProperty=321.321&amp;longProperty=321321">
            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&amp;longProperty=321321">
            Some Words
    </html:link>
      

  5.   

    如果带多个参数,这样可以用:
    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=>加<%= >"还好看。
      

  6.   

    paramId,paramName能解释一下是什么吗?
      

  7.   

    link标签动态参数设置:
    方法一: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&param2=value2&param3=value3"></a>. 另外在Map结构中的每个参数的值可以是String类型和其它Object类型(值将转换成String),或String[]数组,如果是string数组,那么string数组的值都将作为参数设置到href中,如加入一个param4,值为数组[1,2],那么href应该加入&param4=1&param4=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&param1=valuenew&param2=value2&param3=value3"></a>
    不好意思,我不善于描述问题,不知道大家能不能看明白,也不知道有没有说错的地方,请大家指正!