`
andrew.yulong
  • 浏览: 169849 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

阅读更多

关于<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>
 

分享到:
评论

相关推荐

    Struts标签参考 struts标签帮助

    在Struts中,标签库是一种强大的工具,能够简化视图层的开发,提高代码的可读性和可维护性。本篇文章将深入探讨Struts标签的相关知识点,包括它们的作用、类型以及如何在实际项目中使用。 一、Struts标签概述 ...

    struts标签的使用及如何使用

    2. 配置标签库:在Struts配置文件(struts-config.xml)中定义标签库的路径和对应的ActionForm类,这样Struts框架才能正确解析和处理标签。 3. 使用标签:在JSP页面中,用引入的标签库前缀加上标签名称来使用,如`...

    struts2标签使用例子

    - 引入Struts2标签库:在JSP页面头部添加`&lt;%@ taglib prefix="s" uri="/struts-tags"%&gt;`。 - 在Action中定义相关属性和方法。 - 在JSP页面中使用标签,如`s:textfield name="username"`绑定Action的username属性...

    struts标签库使用大典

    Struts标签库是Java开发Web应用时常用的工具,尤其在基于MVC(Model-View-Controller)架构的Struts框架中发挥着重要作用。Struts标签库简化了JSP页面的编写,提高了代码的可读性和可维护性。下面将详细介绍Struts...

    struts标签大全

    在Struts中,标签库是其核心特性之一,为开发者提供了便捷的方式来创建动态网页。下面将详细讲解基于Struts1.2.9版本的标签库及其应用。 1. **动作标签(Action Tags)** - `&lt;s:action&gt;`:这个标签用于执行一个...

    struts2 使用action属性接收中文参数(post提交)

    - Struts2支持使用注解在Action类的方法参数上,比如`@RequestParam`,配合`@InitBinder`,可以在控制器层处理编码问题。 4. **JSP页面**: - JSP页面的`;charset=UTF-8" language="java" %&gt;`指令应设置正确的...

    struts2 自定义标签

    在Struts2中,自定义标签是提高代码可读性和可维护性的重要工具。本文将深入探讨Struts2自定义标签的实现机制、优点以及如何在实际项目中进行应用。 一、Struts2自定义标签的概念 自定义标签是JSP的一种扩展,允许...

    使用Struts 2标签的注意事项

    首先,在使用Struts 2标签之前,需要在web.xml文件中配置Struts 2的核心Filter。这是因为Struts 2的核心Filter是Struts 2框架的入口点,负责处理所有的请求。配置的代码如下所示: ``` &lt;filter-name&gt;struts2 ...

    struts1.2标签实例

    Struts1.2标签是Java Web开发中Struts框架的一部分,它提供了一种在JSP页面中更加便捷、可维护的方式来处理业务逻辑和控制流程。Struts1.2标签库大大简化了视图层的开发,使开发者可以避免过多地在JSP中编写Java脚本...

    Struts2常用标签

    而Struts2则没有明确的分类,所有的标签都位于统一的URI命名空间"/struts-tags"下,但可以根据功能大致分为非UI标签和UI标签。Struts2的一个显著特点是支持多种表达语言,包括OGNL(Object-Graph Navigation ...

    struts2标签库

    在使用Struts2标签库前,需要在JSP页面中引入相应的标签库,通常使用`&lt;%@taglib&gt;`指令,如`&lt;%@taglib uri="/struts-tags" prefix="s"%&gt;`。对于Servlet2.3之前的版本,可能还需要在web.xml中配置标签库的定义,但...

    struts实现自定义标签

    在 Struts 的配置文件(struts-config.xml)中,我们需要添加标签库的配置,包括标签库的 URI 和 TLD 文件的位置。例如: ```xml &lt;taglib uri="/mytags" taglib-location="/WEB-INF/mytags.tld"/&gt; ``` 四、使用...

    struts标签使用中文说明文档

    1. 引入标签库:在JSP页面顶部通过`&lt;%@ taglib&gt;`指令引入Struts2的标签库,如`&lt;%@ taglib prefix="s" uri="/struts-tags"%&gt;`。 2. 标签语法:每个Struts标签都有特定的属性,如name、value、label等,这些属性通常与...

    Struts2标签使用及API文档

    在Struts2框架中,标签库是其重要组成部分,它提供了丰富的标签来帮助开发者更方便地构建用户界面。下面我们将深入探讨Struts2标签的使用及其API文档。 1. **Struts2标签的分类与功能** - **控制标签**:如`s:if`,...

    struts标签的使用

    在Struts中,标签库是提高开发效率和代码可读性的重要工具。本篇文章将详细讲解Struts标签的使用,并通过实例来帮助你理解其工作原理。 1. **Struts标签库简介** Struts提供了丰富的标签库,这些标签库主要分为两...

    struts 标签库 .

    Struts标签库是Java开发Web应用时常用的一个组件,它为Apache Struts框架提供了一组自定义的JSP标签,极大地简化了视图层的开发,使得开发者能够更专注于业务逻辑,而不是繁琐的HTML和Java代码混合。Struts标签库...

    struts2标签使用方法

    - 在JSP页面中引入Struts2标签库:`&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;`。 - 在Action类中定义相应的属性和getter/setter方法。 - 在Action配置中定义结果页面,将Action的属性值传递到视图层。 - 在...

    struts2标签库及国际化的使用例子

    首先,我们需要在 JSP 页面中引入 Struts2 标签库,使用以下语句: ``` &lt;%@taglib uri="/struts-tags" prefix="s"%&gt; ``` 然后,我们可以使用 Struts2 标签库提供的标签来构建用户注册页面。例如,我们可以使用 `...

Global site tag (gtag.js) - Google Analytics