Struts - Ajax 标签

  • 简述

    Struts 使用 DOJO 框架来实现 AJAX 标记。首先,要继续这个示例,您需要将 struts2-dojo-plugin-2.2.3.jar 添加到您的类路径中。
    您可以从 struts2 下载的 lib 文件夹中获取此文件 (C:\struts-2.2.3all\struts-2.2.3\lib\struts2-dojo-plugin-2.2.3.jar)
    对于这个练习,让我们修改 HelloWorld.jsp 如下 -
    
    <%@ page contentType = "text/html; charset = UTF-8"%>
    <%@ taglib prefix = "s" uri = "/struts-tags"%>
    <%@ taglib prefix = "sx" uri = "/struts-dojo-tags"%>
    <html>
       <head>
          <title>Hello World</title>
          <s:head />
          <sx:head />
       </head>
       
       <body>
          <s:form>
             <sx:autocompleter label = "Favourite Colour"
                list = "{'red','green','blue'}" />
             <br />
             <sx:datetimepicker name = "deliverydate" label = "Delivery Date"
                displayformat = "dd/MM/yyyy" />
             <br />
             <s:url id = "url" value = "/hello.action" />
             <sx:div href="%{#url}" delay="2000">
                Initial Content
             </sx:div>
             <br/>
             <sx:tabbedpanel id = "tabContainer">
                <sx:div label = "Tab 1">Tab 1</sx:div>
                <sx:div label = "Tab 2">Tab 2</sx:div>
             </sx:tabbedpanel>
          </s:form>
       </body>
    </html>
    
    当我们运行上面的例子时,我们得到以下输出 -
    Struts Ajax 的标签
    现在让我们一步一步地完成这个例子。
    首先要注意的是添加了一个带有前缀 sx 的新标签库。这个 (struts-dojo-tags) 是专门为 ajax 集成创建的标签库。
    然后在 HTML 头部内部我们调用 sx:head。这将初始化 dojo 框架并使其为页面内的所有 AJAX 调用做好准备。这一步很重要——如果 sx:head 没有被初始化,你的 ajax 调用将无法工作。
    首先我们有自动完成标签。autocompleter 标签看起来很像一个选择框。它填充有红色、绿色和蓝色值。但是选择框和这个之间的不同之处在于它会自动完成。也就是说,如果您开始输入 gr,它将用“绿色”填充它。除此之外,该标签与我们之前介绍的 s:select 标签非常相似。
    接下来,我们有一个日期时间选择器。此标签创建一个输入字段,旁边有一个按钮。按下按钮时,会显示一个弹出式日期时间选择器。当用户选择一个日期时,该日期会以标签属性中指定的格式填充到输入文本中。在我们的示例中,我们将 dd/MM/yyyy 指定为日期格式。
    接下来,我们为我们在前面练习中创建的 system.action 文件创建一个 url 标记。它不一定是 system.action - 它可以是您之前创建的任何操作文件。然后我们有一个 div,其中超链接设置为 url,延迟设置为 2 秒。运行时会发生什么,“初始内容”将显示 2 秒,然后 div 的内容将被替换为hello.action 执行。
    最后,我们有一个带有两个选项卡的简单选项卡面板。标签是带有标签 Tab 1 和 Tab2 的 div。
    值得注意的是,Struts 中的 AJAX 标签集成仍在进行中,并且随着每个版本的发布,这种集成的成熟度正在缓慢增加。