struts标签在URI后面传参数的问题

原创 2007年10月06日 17:37:00
关于<html:link>标签在URI后面传参数的问题

在struts标签<html:link>的page属性指定的URI后面传递参数可以有几种方式:

1.若明确参数名和参数值则直接在URI后输出,
如:<html:link page="/test.do?action=add">add</html:link>

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

3.若两个参数,一个确定一个不确定,则是以上两种方法的结合,即:
<html:link page="/test.do?action=modify" paramId="userid" paramName="uid">modify</html:link>

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);
%>
<html:link action="/test.do" name="params" >test</html:link>
编译后的结果:<a href="/test.do?code=001002&name=tester&alias=matin&alias=jack">test</a>
这种方式虽然可以解决传多参数的问题,但是实现起来也比较麻烦,特别是对记录集中的数据逐条列出的时候

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

虽然在struts标签中嵌入jsp脚本不是真正意义上的struts应用,但是有时在委曲求全的情况下也只能如此了,除非使用自定义标签。比如在form表单中可能需要根据具体数据让某个字段是只读的,就可以用嵌入jsp脚本来实现:
<%
boolean rdonly=false;
if(2==2) rdonly=true;
%>
<html:text property="userid" readonly="<%=rdonly%>" />

6.另外一种比较变态的方法,既不是真正意义上的struts,也不符合xml规范。那就是在<a>标签中用<bean:write>标签输出参数值。
如:<a href="test.do?uid=<bean:write name="user" property="userid"/>&name=<bean:write name="user" property="username"/>">test</a>
 

标签在URI后面传参数的问题

关于标签在URI后面传参数的问题     用了一年多的struts了,对于一些常用的标签还是比较熟悉的。将在今后慢慢做一些总结,把自己的一些经验和大家分享,也以此抛砖引玉,希望能得到大家的高明见解。说...
  • iaijava
  • iaijava
  • 2007年06月06日 15:42
  • 1601

struts中submit标签传递参数问题

href
  • lieyanhaipo
  • lieyanhaipo
  • 2016年10月19日 18:28
  • 651

关于标签在URI后面传参数的问题

关于标签在URI后面传参数的问题    用了一年多的struts了,对于一些常用的标签还是比较熟悉的。将在今后慢慢做一些总结,把自己的一些经验和大家分享,也以此抛砖引玉,希望能得到大家的高明见解。说的...
  • realAsker
  • realAsker
  • 2006年09月27日 14:46
  • 887

(转)标签在URI后面传参数的问题

※ 关于标签在URI后面传参数的问题 ※在struts标签的page属性指定的URI后面传递参数可以有几种方式: 1.若明确参数名和参数值则直接在URI后输出,如:add2.对于参数值不确定的,par...
  • frednxh211
  • frednxh211
  • 2007年08月02日 00:35
  • 233

关于html:link标签在URI后面传参数的问题

在struts标签的page属性指定的URI后面传递参数可以有几种方式: 1.若明确参数名和参数值则直接在URI后输出,如:add2.对于参数值不确定的,paramName和paramPropert...
  • andyelvis
  • andyelvis
  • 2007年07月27日 13:26
  • 1156

在jsp中使用Struts标签

1:前提为Struts开发支持的项目(即添加了Struts的类库) 2:在jsp头部引用标签 3:在使用标签的地方使用 例如:         ...
  • kalision
  • kalision
  • 2012年04月17日 15:09
  • 2572

struts2 Action!jobpage.action后面传参数

function custvisit(){         $("#flag").val("cus");//把值这样放进去(String flag=super.getRequest().getPar...
  • zy08403
  • zy08403
  • 2013年07月26日 14:29
  • 709

JS操作struts标签问题

使用struts2标签会带来很多便利,但在用js控制(定位及获取属性值等)struts2标签时要特别注意,因为struts2标签在页面最终显示时,实际上还是转换为html标签来显示,js(包括jque...
  • wangnetkang
  • wangnetkang
  • 2012年07月01日 13:53
  • 5355

笔记 -- 06 -- 获得Url、Uri字符串后面拼接的参数

01、写在前面 有些需求根据url、uri携带一定的参数,当然有很多种实现方式,这里记录一下比较简单、高效的的方式,方便以后使用。 02、代码实现 // 得到 uri 携带的参数...
  • zp0119
  • zp0119
  • 2017年10月20日 16:37
  • 115

Struts标签基本知识

Struts标签基本知识1.普通标签:控制执行的流程1.1 控制标签:实现分支、循环等流程控制if elseif else append generator iterator merge sort s...
  • benhuo931115
  • benhuo931115
  • 2017年01月12日 15:27
  • 296
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:struts标签在URI后面传参数的问题
举报原因:
原因补充:

(最多只允许输入30个字)