`
zhangfeilo
  • 浏览: 402217 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
社区版块
存档分类
最新评论

Struts2 将两个<sx:autocompleter/>关联起来

阅读更多

本人最近两天想使用sx:autocpmpleter来实现地区的异步动态更新。《Struts2.1权威指南》中找到示例,结果按照示例的方式去研究怎么弄都无法现实动态更新。最后发现示例代码不全,作者很马虎导致,代码更本不可运行。在网上搜索也没有相关的完整示例代码。花了漫长的2天时间终于搞定了!个人意见仅供参考。

1.jsp代码:

 

<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>自动完成</title>
 <sx:head/>
</head>
<body>
<h3>将两个sx:autocompleter关联起来</h3>
<form id="selectForm" >
请选择您喜欢的作者:<br />
<sx:autocompleter 
 name="author" 
 list="{'1','Rod Johnson' , 'David Flanagan'}" 

<--list="#request['books']" listKey="id" listValue="name"-->

<--list="#{'1':'2','2':'3'}" listKey="%{0}" listValue="%{1}"

 list="#request['books']" listKey="id"<--传递的值--> listValue="name"<--显示的值--> required="id"<--指定传递的参数属性-->

-->

 value="1"
 notifyTopics="/books"
 forceValidOption="true"/>

</form>
请选择您喜欢的图书:<br />
<sx:autocompleter 
 name="book"
 href="getBooks.action" 
 cssStyle="width: 240px;"
 autoComplete="false"
 formId="selectForm"
 listenTopics="/books"
 forceValidOption="true"/>
</body>
</html>

 2.Action代码

 

package lee;

import java.util.ArrayList;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;


public class GetBooksAction extends ActionSupport {

    private String author;
    private List<String> books = new ArrayList<String>();
    private int num;

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    //author属性的setter和getter方法
    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = HTMLDecoder.decode(author);
    }
    //books属性的getter方法

    public List<String> getBooks() {
        return books;
    }
    //处理用户请求的execute方法

    public String execute() throws Exception {
        if (author.equals("1")) {
            books.clear();
            books.add("疯狂Java讲义");
            books.add("轻量级Java EE企业应用实战");
            books.add("疯狂Ajax讲义");
            books.add("疯狂XML讲义");
            num = 3;
        } else if (author.equals("Rod Johnson")) {
            books.clear();
            books.add("Expert One-on-One J2EE"
                    + " Design and Development");
            books.add("Expert One-on-One J2EE"
                    + " Design and Development");
            num = 1;
        } else if (author.equals("David Flanagan")) {
            books.clear();
            books.add("JavaScript权威指南");
            books.add("Expert One-on-One J2EE"
                    + " Design and Development");
            num = 1;
        }
        System.out.println(books.get(0));
        return SUCCESS;
    }
}

 

3.异步页面代码

 

<%@ page contentType="text/html;charset=GBK" language="java" %>

 

 

<%@ taglib prefix="s" uri="/struts-tags" %>
{
<s:iterator value="books" var="b" status="bs">
 '<s:property/>':'<s:property/>'
    <s:if test="%{#bs.index<num}">
        ,
    </s:if>
</s:iterator>
}

 

0
0
分享到:
评论
1 楼 littleshy 2012-10-17  
感谢楼主,李刚太坑爹了,差那一点都不弄好

相关推荐

    struts2 标签库 帮助文档

    7. &lt;s:autocompleter&gt;&lt;/s:autocompleter&gt;-----自动完成&lt;s:combobox&gt;标签的内容,这个是ajax B: 1. &lt;s:bean name=""&gt;&lt;/s:bean&gt;-----类似于struts1.x中的,JavaBean的值 C: 1. &lt;s:checkbox&gt;&lt;/s:checkbox&gt;---...

    struts2标签库

    2. `&lt;s:optiontransferselect doubleList="" list="" doubleName=""&gt;&lt;/s:optiontransferselect&gt;`:创建左右选择框,用户可以在两个列表之间移动选项。 P部分: 1. `&lt;s:param&gt;&lt;/s:param&gt;`:为其他标签提供参数,可以...

    Struts2标签详解及具体实例解析

    2. `&lt;s:optiontransferselect&gt;` - 左右选择框,允许用户在两个列表之间移动选项。 P部分: 1. `&lt;s:param&gt;` - 为其他标签传递参数。 2. `&lt;s:password&gt;&lt;/s:password&gt;` - 密码输入框,输入内容不可见。 3. `&lt;s:...

    Struts2标签列表及说明

    * &lt;s:autocompleter&gt;:自动完成 &lt;s:combobox&gt; 标签的内容,这个是 AJAX 实现的 B: * &lt;s:bean&gt;:类似于 Struts1.x 中的 JavaBean 的值 C: * &lt;s:checkbox&gt;:复选框 * &lt;s:checkboxlist&gt;:多选框 * &lt;s:combobox&gt;:...

    struts2标签大全

    Struts2框架是Java Web开发中的一个重要组成部分,它极大地简化了Web应用程序的开发过程。在Struts2中,标签库(Tag Library)扮演着非常重要的角色,它们为开发者提供了丰富的功能,帮助快速构建动态网页。下面将...

    struts2常用标签

    - **功能**:创建两个相互关联的下拉框,其中一个的选择会影响另一个的选项。 - **示例**: ```xml &lt;s:doubleselectlist name="countryCity" doublename="selectedCity" doublelist="{'US': ['NY', 'LA'], 'CN': ...

    struts2标签整理

    Struts2框架是Apache软件基金会提供的一个开源Web应用框架,它继承了Struts1的优点,并在此基础上做了许多改进。Struts2提供了丰富的标签库(Tag Library),使得开发人员能够更方便地在JSP页面上进行动态内容展示和...

    struts2.0 标签清单

    `&lt;s:merge&gt;` 标签用于合并两个或多个值为一个。 ### 26. `&lt;s:optgroup&gt;` 标签 `&lt;s:optgroup&gt;` 标签用于在下拉选择框中创建选项组。 ### 27. `&lt;s:optiontransferselect&gt;` 标签 `&lt;s:optiontransferselect&gt;` 标签...

    Struts2常用标签

    ### Struts2常用标签详解 #### 一、概述 Struts2框架作为一款成熟的Web应用开发框架,在Java Web开发领域有着广泛的应用。Struts2框架提供了丰富的标签库,这些标签可以极大地方便开发者进行Web页面的开发工作。...

    struts2的s标签

    &lt;p&gt;名称:&lt;s:property value="name"/&gt;&lt;/p&gt; &lt;/s:iterator&gt; ``` - **说明**:遍历一个集合或数组,并对每个元素执行标签体内的内容。 25. **`&lt;s:label&gt;`** - 显示标签。 - **示例**: ```jsp &lt;s:label value=...

    struts2.0的标签库

    &lt;s:label for="email"&gt;Email:&lt;/s:label&gt; ``` 创建一个与`email`输入框关联的标签。 29. **`&lt;s:merge&gt;`** - 合并多个列表。例如: ```jsp &lt;s:merge var="mergedList"&gt; &lt;s:property value="list1"/&gt; &lt;s:...

    Struts2标签库详解.doc

    28. `&lt;s:optionTransferSelect doubleList="" doubleName=""&gt;`:创建一个左右选择框,用于在两个列表之间转移选项。 29. `&lt;s:param&gt;`:为其他标签提供参数,常用于传递额外的数据。 30. `&lt;s:password&gt;`:创建密码...

    下面就介绍下Struts2每个标签的用法(有错请指正):

    - **用途**:合并两个集合。 - **示例**: ```xml &lt;s:merge var="mergedList" value="list1" into="list2"/&gt; ``` ##### 30. `&lt;s:optgroup&gt;` 标签 - **用途**:创建分组的选项。 - **示例**: ```xml &lt;s:...

    struts2标签大全详解

    2. `&lt;s:optiontransferselect&gt;`:创建左右选择框,允许用户在两个列表之间转移选项。 P部分: 1. `&lt;s:param&gt;`:为其他标签提供参数。 2. `&lt;s:password&gt;`:创建密码输入框,内容不可见。 3. `&lt;s:property&gt;`:获取并...

    重要知识struts2标签详解收集.pdf

    &lt;filter-name&gt;struts2&lt;/filter-name&gt; &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt; &lt;/filter&gt; ``` 接下来,我们将对部分Struts2标签进行简要介绍: - `...

    struts2标签详解(收集).pdf

    - `&lt;s:doubleselect&gt;`:创建两个关联的下拉框。 - `&lt;s:elseif&gt;`、`&lt;s:else&gt;`:进行条件判断。 - `&lt;s:fielderror&gt;`:显示字段级别的错误信息。 - `&lt;s:file&gt;`:处理文件上传。 这只是Struts2标签库的一小部分,实际中...

     strut2 标签详解

    5. `&lt;s:doubleselect&gt;`:双列选择框,用于两个下拉列表之间的数据关联。 E组标签: 1. `&lt;s:if&gt;`、`&lt;s:elseif&gt;`、`&lt;s:else&gt;`:条件判断标签,实现条件语句。 F组标签: 1. `&lt;s:fielderror&gt;`:显示字段级别的错误...

Global site tag (gtag.js) - Google Analytics