`
lijun87
  • 浏览: 268343 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Struts -- html:link 标签的使用

阅读更多

<html:link> 标签用于生成HTML <a> 元素。<html:link> 在创建超链接时,有两个优点:
(1) 允许在URL 中以多种方式包含请求参数。
(2) 当用户浏览器关闭Cookie 时,会自动重写URL,把SessionID 作为请求参数包含在URL 中,用于跟踪用户的Session 状态。
<html:link> 标签有以下重要属性:
(1) forward:指定全局转发链接。
(2) href:指定完整的URL 键接。
(3) page:指定相对于当前网页的URL。
        <html:rewrite> 用于输出超链接中的URI部分,但它并不生成HTML <a> 元素。URI指的是URL 中协议、主机和端口以后的内容。URI 用于指定具体的请求资源。例如,对于URL:HTTP://localhost:8080/HtmlBasic.do,它的URI为/HtmlBasic.do
示例:
1、创建全局转发链接
    首先,在Struts-config.xml 中<global-forwards> 元素中定义一个<forward> 元素:
    <global-forwards>
        <forward name = "index" path="/index.jsp"/>
    </global-forwards>
    接着,在JSP 文件中创建<html:link> 标签:
    <html:link forward="index">
        Link to Global ActionForward
    </html:link>
    <html:link> 标签的forward 属性和<global-forwards> 元素中的<forward> 子元素匹配。以上代码生成如下HTML 内容:
    <a href="/index.jsp">Link to Global ActionFoward</a>
    值得注意的是,<html:link> 的forward 属性只引用Struts-config.xml 配置文件中<global-forwards>内的<forward> 子元素,如果引用<action> 内的<forward> 子元素,在运行时将会抛出异常:
    Cannot create rewrite URL: Java.Net.MalfomedURlException: Cannot retrieve ActionForward
2、创建具有完整URL 的链接
    如果Web 应用需要链接到其他站点,应该给出其他站点完整URL,例如:
    <html:link href="http://jakarta.apache.org/struts/index.html">
        Generate an "href" directly
    </html:link>
    生成HTML 代码如下:
    <a href="Generate'>http://jakarta.apache.org/struts/index.html">Generate an "href" directly</a>
    值得注意的是,如果指定了<html:link> 标签的href 属性,即使用户浏览器的Cookie 关闭,<html:link> 标签也不会把用户SessionID 作为请求参数加和到URL 中。
3、从当前网页中创建相对URL
    如果从一个网页链接到同一个应用中的另一网页,可以采用以下方式:
    <html:link page="/HtmlBasic.do">
        A relative link from this page
    </html:link>
    <html:link> 标签的 page 属性用于指定相对于当前应用的URI。以上代码生成如下HTML 内容:
    <a href="/lib/HtmlBasic.do">......</a>
4、在URL 或 URI 中包含请求参数
    如果要在URL或URI 中包含请求参数,只要把请求参数加在URL 或 URI的末尾就可以了。例如:
    <html:link page="/HtmlBasic.do?prop1=abc&amp;prop2=123">
        Hard-code the url parameters
    </html:link>
    <!-- or -->
    <html:rewrite page="/HtmlBasic.do?prop1=abc&amp;prop2=123"/>
    以上代码生成如下HTML 内容:
    <a href=/lib/HtmlBasic.do?prop1=abc&amp;prop2=123">......</a>
    rewrite: /HtmlBasic.do?prop1=abc&amp;prop2=123
    提示:在HTML 中&amp 代表特殊字符 "&"
5、在URL 或 URI 中包含单个请求变量
                  
        如果要在URL 中包含一个请求参数,而这人参数的值存在于当前网页可访问的一个变量中,可以按以下方法来实现。
        为了演示这一功能,首先创建一个当前网页可访问的变量。例如,本例中创建了两个变量,一个是字符类型,一个是CustomerBean , 它们存存于一个 page 范围内:
    <%
        
        String stringBean = "Value to Pass ont URL";
        pageContext.setAttribute("stringBean", stringBean);
    %>
    <jsp:useBean id = "customerBean" scope="page" class="htmltaglibs.beans.CurstomerBean"/>
    <jsp:setProperty name="customerBean" property="name" value="weiqin"/>
        接着,把这两个变量作为请求参数,加入到URL或URI 中:
    <html:link page="/HtmlBasic.do"
                      paramId="urlParamName"
                      paramName="stringBean">
        URL encode a parameter based on a string bean value
    </html:link>
    <html:link page="/HtmlBasic.do"
                       paramId="urlParamName"
                       paramName="customerBean"
                       paramProperty="name">
        URL encode a parameter based on a customer bean value
    </html:link>
    rewrite: <html:rewrite page="/HtmlBasic.do"
                                           paramId="urlParamName" paramName="stringBean"/>
    rewrite: <html:rewrite page="/HtmlBasic.do"                                            
                                           paramId="urlParamName" paramName="customerBean"
                                           paramProperty="name"/>
    <html:link> 标签的 paramId 属性指定请求参数名,paramName 属性指定变量的名字。如果变量为JavaBean ,用paramProperty 属性指定JavaBean 的属性。
    对于本例的stringBean,请求参数值为stringBean 的字符串值。对于customerBean,指定了paramProperty 属性,请求参数值为customerBean 的 name 属性值。
    以上代码生成如下HTML 内容:
    <a href="/HtmlBasic.do?urlParamName=Value to Pass on Url">
        Url encode a paramter based on a string bean value
    </a>
    <a href="/HtmlBasic.do?urlParamName=weiqin">
        url encode a parameter based on a customer bean value
    </a>
    rewrite: /HtmlBasic.do?urlParamName=Value to Pass on Url
    rewrite: /HtmlBasic.do?urlParamName=weiqin
6、在URL 或 URI 中包含多个请求变量
    如果在URL 或 URI 中包含多个请求参数,而这些参数的值来自多个变量,需要先定义一个Map类型的java 类,如java.util.HashMap,用它来存放请求变量。例如:
    <%
        /*
         * Strore values int a Map(HashMap in this case)
         * and construct the URL based on the Map
         * /
        java.util.HashMap myMap = new java.util.HashMap();
        myMap.put("myString", new String("myStringValue"));
        myMap.put("myArray" , new String[]{"str1","str2","str3"} );
        pageContext.setAttribute("map", myMap);
    %>
    在以上代码的HaspMap 中存放了两个对象,其中第二个对象是个字符串数组。HashMap 被存放在PageContext 中。 接下来就可以把这个HashMap 作为请求参数,加入到URL 或 URI 中:
    <%-- For this version of the <html:link> tag: --%>
    <%-- map = a map with name/value pairs to pass on the url --%>
    <html:link page="/HtmlBasic.do" name="map">
        URL encode a parameter based on value in a Map
    </html:link>
    <%-- Create the same rewrite string for the above link. --%>
    rewrite:<html:rewrite page="/HtmlBasic.do" name="map"/>
    <html:link> 标签的name 属性指定包含请求变量的HashMap 对象。HashMap 对象中的每一对"key/value" 代表一对或多对"请求参数名/请求参数值"。以上代码生成如下的Html 内容:
    <a href="/HtmlBasic.do?myString=myStringValue&amp;myArray=str1&amp;myArray=str2&amp;myArray=str3">
        URL encode a parameter based on value in a Map
    </a>

分享到:
评论

相关推荐

    struts-html标签

    Struts HTML标签是Java开发中使用Struts框架进行Web应用时的重要组成部分,它提供了一系列预定义的JSP标签,简化了HTML表单的处理和与控制器(Action)之间的交互。这些标签使得开发者能够更方便地处理用户输入、...

    Struts标签库Struts标签库Struts标签库案例

    - Struts标签库包括核心标签库(struts-tiles)和HTML标签库(struts-html),以及其他如逻辑标签库(struts-logic)、bean标签库(struts-bean)等。 - 核心标签库主要用于页面布局和组件管理,而HTML标签库则...

    struts标签帮助文档

    在`struts-config.xml`配置文件中,需要添加相应的标签库声明,以便JSP页面可以使用这些标签。 通过阅读和理解“struts标签帮助文档”,开发者可以更好地利用Struts框架提供的标签功能,提升开发效率和代码质量。这...

    struts1标签库详解

    对于希望深入学习Struts1框架的开发者而言,理解并掌握上述标签的使用是必不可少的。此外,参考官方文档和实际案例,可以进一步提升理解和应用能力。 ### 参考资料 - [Struts 1.3 Documentation]...

    Struts标签- HTML标签

    在Struts表单中使用Hibernate实体类作为ActionForm,可以直接通过HTML标签与数据库对象交互,简化数据操作。 7. **Struts 1与Struts 2的区别** 在Struts 2中,HTML标签被替换为更强大的Struts Tags,提供了更多的...

    struts.zip

    在JSP页面中,通过`&lt;%@ taglib prefix="logic" uri="/tags/struts-logic.tld" %&gt;`等方式引入这些库,然后就可以在页面中使用相应的标签进行编程。 总的来说,struts-logic、struts-html和struts-bean这三个标签库是...

    struts 标签库

    使用Struts标签库可以显著提高开发效率,因为它们提供了内置的类型转换、错误处理和国际化支持。开发者不再需要在JSP页面中编写大量的Java脚本,而是可以专注于页面布局和业务逻辑的分离,从而实现更加清晰和维护...

    Struts标签.doc

    4. **Nested Tags**:这个库是在前三个库基础上扩展的,它支持标签之间的嵌套,使得在复杂页面结构中使用Struts标签更加灵活。 5. **Tiles Tags**:Tiles标签库是用于创建可重用的页面布局组件。它允许开发者定义和...

    Struts标签库

    这个PPT展示的中软国际培训资料深入介绍了如何使用Struts提供的各种HTML标签来构建动态网页。 1. **&lt;html:form&gt; 标记** `&lt;html:form&gt;` 标记用于创建一个HTML `&lt;form&gt;` 标签,并将其与Struts的Action对象及`struts-...

    struts1标签及实例

    - `struts_taglib`:这个目录可能包含了Struts1的标签库JAR文件,它是使用Struts1标签所必需的库。 了解并熟练掌握Struts1的标签库是提升Java Web开发效率的关键,通过合理的使用,能够有效地降低代码复杂度,提高...

    JSP Struts之HTML标签库详解

    Struts框架是Java Web开发中的一个关键组件,它提供了一种结构化的方式来组织应用程序,并简化了用户...通过使用Struts的HTML标签库,开发者可以创建更整洁、更易于维护的JSP页面,同时保持与Struts框架的紧密集成。

    struts标签

    Struts标签库是Java Web开发中的一个重要组成部分,主要用于构建基于MVC(模型-视图-控制器)架构的应用程序。在Struts框架中,标签库...理解并熟练使用Struts标签,对于提升Java Web开发效率和项目质量具有重要意义。

    学习struts很好的文档

    - **配置Struts标签库**:使用元素引入Struts提供的标签库。 ##### 2.配置struts-config.xml - `&lt;struts-config&gt;`:根元素,包含其他所有配置项。 - `&lt;data-sources&gt;`:定义数据库连接池信息。 - `&lt;form-beans&gt;`:...

    超全的Struts 标签库

    本文将深入探讨Struts中的HTML标签库,包括链接、图像、基本表单元素以及下拉列表和多选列表的使用方法。 1. **链接标签**: - `html:link` 用于创建链接,可以指向应用程序内部的页面,外部URL,或者通过`forward...

    Struts 2.0 标签库简介.doc

    在Struts 2.0中,标签库的使用无需预先分类,只需要在JSP页面头部引入相应的TLD(Tag Library Descriptor)即可,如下所示: ```jsp &lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; ``` 接下来,我们详细探讨一下...

    Struts客户化标签

    一个简单的使用`struts-html`标签的表单例子: ```jsp &lt;%@ taglib prefix="html" uri="/tags/html.tld" %&gt; &lt;html:form action="myAction"&gt; &lt;html:text property="username" /&gt; ...

    struts 标签库 .

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

    struts标签的使用

    下面将详细介绍Struts标签的使用及其在实际开发中的应用。 1. **Struts Tags概述** Struts标签库分为两个主要部分:Tiles标签库和Struts HTML标签库。Tiles标签主要用于页面布局和组合,而HTML标签库则用于表单...

    Struts标记库.rar

    Struts标记库是Struts框架提供的一个强大的工具,它包含了一系列自定义的JSP标签,这些标签可以帮助开发者更高效、更简洁地编写页面逻辑,减少Java代码在JSP页面中的使用,从而提高开发效率和代码质量。 1. **...

Global site tag (gtag.js) - Google Analytics