- Struts 2 教程
- Struts2 - 主页
- Struts2 - 基本 MVC 架构
- Struts2 - 概述
- Struts2 - 环境设置
- Struts2 - 架构
- Struts2 - 示例
- Struts2 - 配置
- Struts2 - 动作
- Struts2 - 拦截器
- Struts2 - 结果类型
- Struts2 - 价值堆栈/OGNL
- Struts2 - 文件上传
- Struts2 - 数据库访问
- Struts2 - 发送电子邮件
- Struts2 - 验证
- Struts2 - 本地化
- Struts2 - 类型转换
- Struts2 - 主题/模板
- Struts2 - 异常处理
- Struts2 - 注释
- Struts 2 集成
- Struts2-Spring
- Struts2 - 瓷砖
- Struts2-Hibernate
- Struts 2 有用资源
- Struts2 - 问题与解答
- Struts2 - 快速指南
- Struts2 - 有用的资源
- Struts2 - 讨论
Struts 2 - 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>
当我们运行上面的例子时,我们得到以下输出 -
现在让我们一步一步地看一下这个例子。
首先要注意的是添加了带有前缀 sx 的新标签库。这个(struts-dojo-tags)是专门为ajax集成创建的标签库。
然后在 HTML header 中我们调用 sx:head。这会初始化 dojo 框架并使其为页面内的所有 AJAX 调用做好准备。这一步很重要 - 如果没有初始化 sx:head,您的 ajax 调用将无法工作。
首先我们有自动完成器标签。自动完成器标签看起来非常像一个选择框。它填充了红色、绿色和蓝色值。但选择框与此选择框的不同之处在于它会自动完成。也就是说,如果您开始输入 gr,它将用“green”填充。除此之外,该标签与我们之前介绍的 s:select 标签非常相似。
接下来,我们有一个日期时间选择器。该标签创建一个输入字段,旁边有一个按钮。按下按钮时,将显示弹出日期时间选择器。当用户选择日期时,该日期将以标签属性中指定的格式填充到输入文本中。在我们的示例中,我们指定 dd/MM/yyyy 作为日期格式。
接下来,我们为之前练习中创建的 system.action 文件创建一个 url 标签。它不一定是 system.action - 它可以是您之前创建的任何操作文件。然后我们有一个 div,超链接设置为 url,延迟设置为 2 秒。运行此命令时会发生的情况是,“初始内容”将显示 2 秒,然后 div 的内容将替换为 hello.action 执行中的内容。
最后我们有一个带有两个选项卡的简单选项卡面板。这些选项卡本身就是带有标签 Tab 1 和 Tab2 的 div。
值得注意的是,Struts 中的 AJAX 标签集成仍在进行中,并且这种集成的成熟度随着每个版本的发布而慢慢提高。