`
demojava
  • 浏览: 548895 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

【转载】<s:doubleselect>标签的使用

    博客分类:
  • JAVA
阅读更多

本文装载自:http://karidyang.iteye.com/blog/611096

代码很经典

POJO

Java代码 复制代码

@Entity  

@Table(name = "P_AREA")   

@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)   

public class Area {   

@Id  

        private Long id;   

    private String areaName;   

  

        // getter and setter   

}  

@Entity
@Table(name = "P_AREA")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Area {
        @Id
        private Long id;
	private String areaName;

        // getter and setter
}

 

Java代码 复制代码

@Entity  

@Table(name = "P_HOUSE")   

@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)   

public class House {   

        @Id  

        private Long id;   

    private String houseCode;   

  

        //getter and setter   

}  

@Entity
@Table(name = "P_HOUSE")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class House {
        @Id
        private Long id;
	private String houseCode;

        //getter and setter
}

 

Java代码 复制代码

@Entity  

@Table(name = "P_PERSON")   

@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)   

public class Person {   

        @Id  

        private Long id;   

    private String name;   

  

        //getter and setter   

}  

@Entity
@Table(name = "P_PERSON")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Person {
        @Id
        private Long id;
	private String name;

        //getter and setter
}

 

 

Action如下:

Java代码 复制代码

@Namespace("/")   

@Results( { @Result(name = CrudActionSupport.RELOAD, location = "person.action", type = "redirect") })   

public class PersonAction extends CrudActionSupport{   

       

    private List<Person> persons;   

    private Long areaId;   

    private Long houseId;   

       

    private List<Area> areaList;   

    private Map<Long, List<House>> houseMap;   

    //服务层接口   

    @Autowired  

    private ServiceManage serviceManage;   

       

    @Override  

    public String list() throws Exception {   

           

           

        //从数据库查询所有的区域   

        areaList = serviceManage.searchArea();   

        houseMap = new HashMap<Long, List<House>>();   

        //封装HouseMap   

        for (Area area : areaList) {   

            houseMap.put(area.getId(), area.getHouseList());   

        }   

        if (houseId == null) {   

            addActionError("请选择房号");   

            return SUCCESS;   

        }   

        persons = serviceManage.searchPerson(houseId);   

        return SUCCESS;   

    }   

       

    //getter and setter   

  

}  

@Namespace("/")
@Results( { @Result(name = CrudActionSupport.RELOAD, location = "person.action", type = "redirect") })
public class PersonAction extends CrudActionSupport{
	
	private List<Person> persons;
	private Long areaId;
	private Long houseId;
	
	private List<Area> areaList;
	private Map<Long, List<House>> houseMap;
	//服务层接口
	@Autowired
	private ServiceManage serviceManage;
	
	@Override
	public String list() throws Exception {
		
		
		//从数据库查询所有的区域
		areaList = serviceManage.searchArea();
		houseMap = new HashMap<Long, List<House>>();
		//封装HouseMap
		for (Area area : areaList) {
			houseMap.put(area.getId(), area.getHouseList());
		}
		if (houseId == null) {
			addActionError("请选择房号");
			return SUCCESS;
		}
		persons = serviceManage.searchPerson(houseId);
		return SUCCESS;
	}
	
	//getter and setter

}

 

页面: person.jsp

Java代码 复制代码

<s:form id="mainForm" action="person.action" method="post">   

        <div id="filter">   

            <div style="float: left">   

            请选择房间:<s:doubleselect list="areaList"    

                listKey="id"    

                listValue="areaName"  

                doubleName="houseId"  

                name="areaId"  

                doubleList="houseMap.get(top.id)" //此处top指第一个列表当前选择到的对象   

                doubleListKey="id"  

                doubleListValue="houseCode"  

                theme="custom"  //custom是自定义的模板类型,取消了原来模板中的<br />   

 />   

            </div>   

            <input type="button" value="搜索" onclick="search();"/>   

        </div>   

           

        <div id="content">   

            <table id="contentTable">   

                <tr>   

                    <th><房号</th>   

                    <th>姓名</th>   

                </tr>   

                <s:iterator value="person">   

                    <tr>   

                        <td>${house.houseCode }&nbsp;</td>   

                        <td>${name }&nbsp;</td>   

                    </tr>   

                </s:iterator>   

            </table>   

        </div>   

    </s:form>  

<s:form id="mainForm" action="person.action" method="post">
		<div id="filter">
			<div style="float: left">
			请选择房间:<s:doubleselect list="areaList" 
				listKey="id" 
				listValue="areaName"
                doubleName="houseId"
                name="areaId"
                doubleList="houseMap.get(top.id)" //此处top指第一个列表当前选择到的对象
                doubleListKey="id"
                doubleListValue="houseCode"
                theme="custom"  //custom是自定义的模板类型,取消了原来模板中的<br />
 />
            </div>
			<input type="button" value="搜索" onclick="search();"/>
		</div>
		
		<div id="content">
			<table id="contentTable">
				<tr>
					<th><房号</th>
					<th>姓名</th>
				</tr>
				<s:iterator value="person">
					<tr>
						<td>${house.houseCode }&nbsp;</td>
						<td>${name }&nbsp;</td>
					</tr>
				</s:iterator>
			</table>
		</div>
	</s:form>

 

 

自定义模板

在classpath下新建template/custom目录,拷贝struts2-core-2.1.8.jar\template\xhtml\doubleselect.ftl到该目录下,删除文件中的<br />

或者创建css样式

.doubleselect br{

 display:none;
}

jsp页面:

 <div class="doubleselect">

<s:doubleselect list="areaList"
listKey="id"
listValue="areaName"
                doubleName="houseId"
                name="areaId"
                doubleList="houseMap.get(top.id)" //此处top指第一个列表当前选择到的对象
                doubleListKey="id"
                doubleListValue="houseCode"
                theme="simple"  />

 

</div>

 

分享到:
评论

相关推荐

    Struts2标签 UI标志又可以分为表单UI和非表单UI两部分

    - `&lt;s:if&gt;`、`&lt;s:elseif&gt;` 和 `&lt;s:else&gt;` 标签用于实现条件判断逻辑。 - 示例: ```xml &lt;s:if test="%{testBoolean}"&gt; &lt;p&gt;这是显示的内容&lt;/p&gt; &lt;/s:if&gt; &lt;s:elseif test="%{testBoolean == false}"&gt; &lt;p&gt;这是另...

    struts2 标签库 帮助文档

    1. &lt;s:generator separator="" val=""&gt;&lt;/s:generator&gt;----和&lt;s:iterator&gt;标签一起使用 H: 1. &lt;s:head/&gt;-----在&lt;head&gt;&lt;/head&gt;里使用,表示头文件结束 2. &lt;s:hidden&gt;&lt;/s:hidden&gt;-----隐藏值 I: 1. &lt;s:...

    doubleselect.doc

    &lt;h2&gt;Doubleselect缺省值selected使用数据演示:&lt;/h2&gt; &lt;s:form name="form1"&gt; &lt;s:doubleselect label="缺省值测试" list="#{map}" name="city" value="%{defaultItem}" doublevalue="%{doubleDefaultItem}"/&gt; &lt;/s:...

    j2ee-struts2-Select_DoubleSelect.rar_struts2 doubleselect

    在Struts2中,我们有许多内置的标签来帮助开发者更方便地处理表单元素,例如`&lt;s:select&gt;`和`&lt;s:doubleselect&gt;`就是其中两个用于创建下拉列表的标签。下面我们将详细探讨这两个标签以及如何在J2EE项目中使用它们。 1...

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

    -- 这里可以使用&lt;s:iterator&gt; --&gt; &lt;/s:generator&gt; ``` - **解释**:生成数据项,并使用逗号分隔。 ##### 24. `&lt;s:head&gt;` 头部标签 - **用途**:在`&lt;head&gt;`标签内使用。 - **示例代码**: ```xml &lt;s:head&gt; ...

    Struts2标签列表及说明

    * &lt;s:generator&gt;:和 &lt;s:iterator&gt; 标签一起使用 H: * &lt;s:head&gt;:在 &lt;head&gt;&lt;/head&gt; 里使用,表示头文件结束 * &lt;s:hidden&gt;:隐藏值 I: * &lt;s:i18n&gt;:加载资源包到值堆栈 * &lt;s:include&gt;:包含一个输出,servlet ...

     strut2 标签详解

    1. `&lt;s:generator&gt;`:与`s:iterator`标签配合使用,生成序列。 H组标签: 1. `&lt;s:head&gt;`:在HTML的`&lt;head&gt;`标签中使用,用于结束头文件。 2. `&lt;s:hidden&gt;`:创建隐藏字段,用于存储不显示的数据。 I组标签: 1. `...

    struts2标签介绍

    在Struts2中,所有的标签都统一在`&lt;s&gt;`前缀下,通过引入`&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;`就可以在页面上使用这些标签。 **A组标签:** 1. `&lt;s:a&gt;` - 用于创建超链接,与HTML的`&lt;a&gt;`标签类似,可以...

    struts2地市、县区二级联动下拉菜单 doubleselect标签

    4. **JSP页面**:在JSP页面中,使用`&lt;s:doubleselect&gt;`标签来声明这两个下拉列表。标签的属性包括`list`、`listKey`、`listValue`、`name`等,它们分别用来指定数据源、键字段、值字段以及Action中的属性名。 ```...

    struts2标签大全详解

    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;`:显示字段级别的错误...

    Java实训教程 Java软件开发实战 Java开发框架介绍 struts2_5_标签 共113页.pptx

    8. **`&lt;s:doubleselect&gt;`**:用于生成一对双列表框,支持多选。 9. **`&lt;s:combobox&gt;`**:生成组合框。 10. **`&lt;s:optiontransferselect&gt;`**:生成可移动选项的下拉列表。 11. **`&lt;s:optgroup&gt;`**:用于组织多个`&lt;s:...

    struts2.0 标签清单

    `&lt;s:push&gt;` 标签用于将值推入堆栈,以便后续的`&lt;s:property&gt;`等标签使用。 ### 32. `&lt;s:radiolist&gt;` 标签 `&lt;s:radiolist&gt;` 标签用于创建一组单选按钮,通常用于单选列表。 ### 33. `&lt;s:reset&gt;` 标签 `&lt;s:reset&gt;`...

    重要知识Structs2标签初学者.pdf

    14. **双下拉框标签 `&lt;s:doubleselect&gt;`**:创建两个关联的下拉框,通常用于一对多的选择。 15. **条件判断标签 `&lt;s:if&gt;`, `&lt;s:elseif&gt;`, `&lt;s:else&gt;`**:实现条件语句,类似于Java的if-else结构。 16. **文件错误...

    struts2标签整理

    `&lt;s:doubleselect&gt;` - 双向选择列表标签 用于创建双向选择列表。 ```jsp &lt;s:doubleselect name="doubleSelect" doubleList="doubleOptions" doubleName="doubleFieldName"/&gt; ``` ##### 17. `&lt;s:if&gt;`、`&lt;s:elseif&gt;`...

    struts2标签详解(收集).pdf

    流程控制标签如&lt;s:if&gt;、&lt;s:switch&gt;用于条件判断和流程控制,数据访问标签如&lt;s:property&gt;用于输出ValueStack中的值,&lt;s:i18n&gt;支持国际化。 3. AJAX标签:Struts2还提供了与AJAX相关的标签,如&lt;s:ajax&gt;,能够实现异步...

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

    `&lt;s:doubleselect&gt;` 标签 - **用途**:创建双列表选择框。 - **示例**: ```xml &lt;s:doubleselect doubleName="selectedOptions" doubleList="allOptions" /&gt; ``` ##### 17. `&lt;s:if&gt;`、`&lt;s:elseif&gt;`、`&lt;s:else&gt;`...

    struts2标签大全

    &lt;s:doubleselect name="selectedOptions" doubleName="unselectedOptions" doubleList="allOptions"/&gt; ``` #### 17. `&lt;s:if&gt;`、`&lt;s:elseif&gt;`、`&lt;s:else&gt;` - 条件判断 提供基本的条件分支结构。 ```xml &lt;s:if test=...

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

    这只是Struts2标签库中的一部分,实际使用中还有许多其他标签,如`&lt;s:form&gt;`、`&lt;s:iterator&gt;`、`&lt;s:property&gt;`等,它们各自服务于特定的目的,共同构成了Struts2强大而灵活的视图层工具集。 总的来说,Struts2标签...

    struts2.0 taglib 标签库

    - `&lt;s:doubleselect&gt;`:创建两个关联的下拉框,常用于一对多关联的选择。 - `&lt;s:optiontransferselect&gt;`:创建两个独立的下拉框,支持元素的转移。 4. **表单元素**: - `&lt;s:file&gt;`:处理文件上传功能。 - `&lt;s:...

    struts2标签详解(收集)汇编.pdf

    这只是Struts2标签库中的一部分,实际使用中还有许多其他标签,如`&lt;s:form&gt;`、`&lt;s:textfield&gt;`、`&lt;s:textarea&gt;`、`&lt;s:submit&gt;`等,它们分别用于创建表单、文本输入框、多行文本输入框以及提交按钮。 Struts2的标签...

Global site tag (gtag.js) - Google Analytics