1

我正在按照教程将 AJAX 构建到 Struts2 中:

我成功地完成了最后一步,我的界面与用户显示的界面完全相同,而且,我的第一个下拉框的 AJAX 工作得很好,但是,第二个下拉框根本没有任何 AJAX 工作。

第一个下拉列表和第二个下拉列表之间的区别在于它们如何利用项目列表。第一个下拉列表使用:

<sx:autocompleter list="{'1','12','13'}"

对项目列表进行硬编码,而第二个使用以下方式:

<sx:autocompleter list="webframeworks" 

这实际上是我感到困惑的地方,struts2 如何知道 webframeworks 是 AutoCompleterAction 类中的一个字段并检索列表的值?

有两个观察:我注意到的一件事是“webframeworks”也是 AutoCompleterAction 类中的字段名称。第二个是第一个下拉菜单实际上是填充的,而第二个是空的。

我只是一个初学者,非常感谢提前帮助!

4

2 回答 2

1

正如@UmeshAwasthi 指出的那样,自 2.1.x 版本以来,不推荐使用与 Struts2 集成的 Dojo。

这主要是因为集成的 Dojo 比官方的 Dojo 版本更旧,维护更少,有 bug 等。

您可以使用开箱即用的 Dojo、jQuery 或任何其他 AJAX 框架来完成这项工作,但我强烈建议您查看Struts2-jQuery 插件,这是一个完整的、编写良好的托管库,将允许您实现几乎所有类型的结果,而无需单独学习 jQuery。

只需单击展示的小部件菜单,然后单击自动完成程序,即可享受。

于 2013-01-03T10:51:38.663 回答
0

在第二个示例中,数据来自服务器上的操作类。

  List<String> webframeworks = new ArrayList<String>();

上面的列表被填充到动作类中。因此,在第二种情况下,您指的是名称为webframeworks的列表。

就像你问它是怎么知道的;您正在使用 STRUTS 2 标记 (< sx:autocompleter ..),因此 Struts 会在内部处理它。

于 2013-01-03T10:23:43.733 回答