【www.gdgbn.com--Action】

关于标签在URI后面传参数的问题2007-09-21 09:01关于标签在URI后面传参数的问题在struts标签的page属性指定的URI后面传递参数可以有几种方式: 1.若明确参数名和参数值则直接在URI后输出,
如:add

2.对于参数值不确定的,paramName和paramProperty来输出,用paramId属性指定参数名。
对于paramName指定的对象应该存在于page、request、session、application其中之一。一般来说,是从Action类传过来的,作为request的属性之一(requst.setAttribute("name",object))。
如果paramName指定的对象是action的ActionForm,则无需使用request.setAttribute方法。
例:uname
若参数值是一个bean对象的属性值(比如ActionForm,或者集合中存放的对象)则:
uname

3.若两个参数,一个确定一个不确定,则是以上两种方法的结合,即:
modify

4.对于多个参数的问题,可以使用一个HashMap集合对象来存放所有的参数名及对应的参数值的方式,paramName属性值指定为该HashMap集合对象即可。
举例:
<%
//代码理想的位置应该是在action中
//可以在jsp页面测试
    java.util.HashMap pms = new java.util.HashMap();
    pms.put("code", "001002");
    pms.put("name", "tester");
    pms.put("alias", new String[]{"matin","jack"});
    request.setAttribute("params", pms);
%>
test
编译后的结果:test
这种方式虽然可以解决传多参数的问题,但是实现起来也比较麻烦,特别是对记录集中的数据逐条列出的时候

5.针对有的网友在标签中嵌入使用jsp脚本(scriptlet)的问题,
例如:
add,这种写法是错误的,是无法编译的。
有的网友认为在struts标签内是不允许使用jsp脚本的,这种说法也不准确。如果前面的写法改成:
add,就可以被执行,但是要注意URL相对路径的问题。

虽然在struts标签中嵌入jsp脚本不是真正意义上的struts应用,但是有时在委曲求全的情况下也只能如此了,除非使用自定义标签。

本文来源:http://www.gdgbn.com/flash/13196/