谁知道STRUTS标签 HTML:LINK 怎么可以传2个JAVABEAN中的不确定参数?
RT
------解决方案--------------------Struts中的html:link标签是一个很常用的标签,其功能也比较明显:生成 <a href= "yoururl "> </a> 这样的HTML代码
在刚开始接触这个标签的时候,我知道这个标签可以这样用:
=========================================================
<html:link page= "/html-link.do " paramId= "stringProperty " paramName= "newValue ">
String via paramId and paramName
</html:link>
=========================================================
这个newValue一般就是一个String类型的变量,上龅拇虢烧庋腍TML代码:
<a href= "http://serverip:portno/projectcontextname/html-link.do?stringProperty=$newValue "> String via paramId and paramName </a>
其中$newValue表示的是newValue这个变量的值
也可以这样用:
=========================================================
<html:link page= "/html-link.do "
paramId= "booleanProperty "
paramName= "testbean " paramProperty= "booleanProperty ">
Boolean via paramId, paramName, and paramValue
</html:link>
=========================================================
这里多了一个paramProperty属性,这里的name属性和property属性和bean:write标签一样,一般来说name的值是一个被绑定在
request、session、application或page范围内的对象的绑定key值,Property属性的值则是这个对象的一个成员变量的名称
使用了name和Property之后,struts将在上述四种范围内,以name变量值为key查找对象,并将对象读出后,取出Property定义的
成员变量的值。
所以以上的标签被转化成HTML代码之后如下:
<a href= "http://serverip:portno/projectcontextname/html-link.do?booleanProperty=$testbean.booleanProperty "> Boolean via paramId, paramName, and paramValue </a>
OK,了解到这里之后,感觉到一丝遗憾,因为如果只有paramId,paramName,paramProperty这三个属性的话,那么对于html:link标签来说,就永远只能
自定义一个参数,如果需要定义多个参数,如http://serverip:portno/projectcontextname/html-link.do?a=3&b=5&y=9这样的链接URL来说,就无能为力了
如果要定义多个参数,就需要手动拼URL,定义在page属性里面,这就失去了使用标签的意义了。
在此情况下,怀着失望的心情,打开了Struts的源码,开始查看这个标签的源码,忽然发现,这个标签完全是可以自定义多个参数的,关键就在name属性上
首先来看一段如何自定义多个参数的代码,如下:
=========================================================
<%
java.util.HashMap newValues = new java.util.HashMap();
newValues.put( "floatProperty ", new Float(444.0));
newValues.put( "intProperty ", new Integer(555));
newValues.put( "stringArray ", new String[]
{ "Value1 ", "Value2 ", "Value3 " });
pageContext.setAttribute( "newValues ", newValues);
%>
<html:link page= "/html-link.do " name= "newValues ">
Float, int, and stringArray via name (Map)
</html:link>
=========================================================
原来使用name属性就可以将一个Map类型的变量放入request、session、application、page四种范围的容器内,然后取个key值,填在name属性里就可以了
Struts将自动读取这个Map类型对象的所有key和key所定义的对象,然后自动生成HTML代码
好比上述的例子,将生成如下的HTML代码:
<a href= "http://serverip:portno/projectcontextname/html-link.do?stringArray=Value1&stringArray=Value2&stringArray=Value3&floatProperty=444.0&intProperty=555 ">
Float, int, and stringArray via name (Map) </a>
------解决方案-------------------- <a href= " <%=request.getContextPath() %> /projAchieveOpen.do?ptid= <bean:write name= "list " property= "ptid " /> &name= <bean:write name= "list " property= "name " / "> 公 开 </a>
------解决方案--------------------你举个例子,说说啥叫 "2个不确定的参数 "
94