通过指定autocompleter标签的formld属性,可以使两个<s:autocompleter>标签关联起来进行联动。如在某些网站的注册系统中,可以选择注册用户所在的省和所有的市,当用户选择某一个省时,在市列表框中就会列出该省所有的市。这个功能使用autocompleter标签非常容易实现。
实现该功能的基木原理是将显示省的autocompleter标签放在<s:form...>标签中,并使用notifyTopics属性发布一个事件。 然后在显示市的autocompleter标签中使用listenTopics属性监听该事件,并通过formld 属性指定<s:fom.../>标签的id值。一旦显示省的autocompleter标签成功发布事件,显示市的autocompleter标签就会立即监听到该事件,提交表单,以获得该省的所有市,并显示在autocompleter标签中。下面的代码显示了省和市的列表。
<!-- autocompleter_form.jsp -->
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>两个autocompleter标签联动</title>
<s:head theme="ajax" />
<style type="text/css">
input {
widt