`
夜之son
  • 浏览: 26302 次
  • 性别: Icon_minigender_1
  • 来自: 信阳
社区版块
存档分类
最新评论

s:doubleselect 标签

阅读更多

最近在项目中用到了一个需要联动的地方,我有很多个专业课。每个专业课有很多个知识点。现在我希望的是使用选择了一个专业课之后,对应的知识点在二级下拉框中也对应改变。这个实现如果使用ajax的话,可以实现。

我用的是SSH,struts2中有联动标签,不过这个标签好像并不是很好用。还是说说我的思路吧:我先查出一个专业所对应的专业课,然后根据专业课id来查出专业课所对应的知识点。然后显示在前台,保证专业课和知识点可以联动。

 

/*
	 * 查找相应课程名所对应的知识点
	 * */
	public List<Knowl> findkno(int i) {
		// TODO Auto-generated method stub
		List<Knowl> list=new ArrayList<Knowl>();
		list=this.getHibernateTemplate().find("from Knowl as kn where kn.cname="+i);
		return list;
	}
	/*
	 * 查找相应专业所对应的课程
	 */
	public List<Cname> findcno(String str) {
		// TODO Auto-generated method stub
		List<Cname> list=new ArrayList<Cname>();
		list=this.getHibernateTemplate().find("from Cname as cn where cn.spec=?", str);
		return list;
	}
	/*
	 * 查找相应课程所对应的id
	 */ 
	public List<Integer> getcnid(String str) {
		// TODO Auto-generated method stub
		List<Integer> list = new ArrayList<Integer>();
		list=this.getHibernateTemplate().find("select cn.cnameId from Cname as cn where cn.cname=?",str);
		return list;
	}

 

 用一个action来调用这些方法:

 

 lk=new ArrayList<Knowl>();
		 ls=new ArrayList<Integer>();
		map=new HashMap();
		list=cdao.findcno("JAVA");//获得java专业所对应的专业课集合
		/*
		 * 遍历课程名得到每一个课程的id
		 * */
		for(int i=0;i<list.size();i++){
			String str=list.get(i).getCname();//获得各个专业课所对应的专业课名字
			 ls=cdao.getcnid(str);//获得每一个专业课的id
			for(int z=0;z<ls.size();z++){
				int j=(int)ls.get(z);
				lk=cdao.findkno(j);//获得每一门专业课所对应的知识点
				map.put(j, lk);
			}
		}
		return "success";

 

 list是要交给前台显示的一级菜单。map是要显示的二级菜单.其中j为每个专业课所对应的id。

前台是这样显示的:

 

<s:doubleselect name="first" list="list" listKey="cname" listValue="cname" 
												doubleName="second"  doubleList="map.get(cnameId)" 
												doubleListKey="knowl" doubleListValue="knowl" 
												formName="suibian" theme="simple">
		</s:doubleselect>
 

网上有哥们这样做,doubleList="map.get(top.id)",我试过用,没能实现。map.get(cnameId)也能直接得到那个对象。 listKey="cname"也可一些成cnameId.

cname,cnameId都是对象Cname中的属性。就是专业课那张表的属性,knowl为知识点那个对象的一个属性。

而且formName="suibian" 也要跟表单的名字保持一致,不然也出不来。我按照这种方式实现了我的要求。

希望可以提供给需要的兄弟们一些启示,有高见的也请不吝赐教。

 

分享到:
评论

相关推荐

    struts2中doubleselect标签的应用

    ### Doubleselect标签概述 在Struts2中,`doubleselect`标签是一种非常实用的标签,主要用于创建两个级联选择框。这种标签允许用户在一个下拉列表中进行选择时,另一个相关的下拉列表会自动更新其选项。这对于处理...

    j2ee-struts2-Select_DoubleSelect.rar_struts2 doubleselect

    2. `&lt;s:doubleselect&gt;`标签: `&lt;s:doubleselect&gt;`是Struts2提供的一个特殊标签,用于创建两个关联的下拉列表。当一个下拉列表的选择发生变化时,另一个下拉列表的选项会相应更新。这在处理一对多关系时非常有用,...

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

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

    doubleselect.doc

    ### Struts2中doubleselect标签实现省市联动案例详解 #### 一、背景介绍 在Web应用开发中,经常需要处理一些具有层级关系的数据选择问题,比如中国的省市县选择。为了提高用户体验并简化开发过程,Struts2框架提供...

    Struts2的doubleselect标签演示

    4. **OGNL表达式**:在JSP页面中,我们可以使用OGNL表达式来获取Action中的属性,如`&lt;s:doubleselect&gt;`标签中的`list`、`listKey`、`listValue`等属性,都需要通过OGNL来绑定Action中的数据。 5. **`doubleselect`...

    struts2 doubleselect标签的用法例子

    在"struts2 doubleselect标签的用法例子"中,我们将探讨如何实现这个功能。首先,我们需要理解`doubleselect`标签的基本结构和属性。`doubleselect`标签通常包含两个部分:父级选择器和子级选择器,它们之间的关联...

    Struts2标签列表及说明

    * &lt;s:doubleselect&gt;:双下拉框 E: * &lt;s:if&gt;:条件判断 * &lt;s:elseif&gt;:条件判断 * &lt;s:else&gt;:条件判断 F: * &lt;s:fielderror&gt;:显示文件错误信息 * &lt;s:file&gt;:文件上传 * &lt;s:form&gt;:获取相应 form 的值 G: * ...

    struts2中的doubleSelect标签的用法(从数据库中读取数据,HSS)

    ### Struts2中的DoubleSelect标签的用法 在Struts2框架中,`doubleSelect`标签是一种非常实用的工具,它允许用户在一个页面上通过两次选择来完成复杂的数据关联操作。这种标签尤其适用于多级菜单或者层级关系的选择...

    struts2 标签库 帮助文档

    doubleselect标签:生成一个相互关联的列表框,该标签由两个下拉选择框组成。 datetimepicker标签:生成一个日期、时间下拉列表框。 head标签:生成HTML页面的HEAD部分。 file标签:在页面上生成一个上传文件元素...

    struts2 doubleselect 实例

    Struts2 Doubleselect标签是用于创建二级联动下拉列表的,这种控件在网页表单中常见于需要显示层次关系数据的场景,例如省份-城市的选择。Doubleselect标签结合了两个下拉列表,其中一个的选择会影响到另一个下拉...

    JSP_struts2标签大全.doc

    12. `s:doubleselect` 标签:这是一个双列选择标签,允许用户在两个列表之间进行选择并交换元素。 除此之外,Struts 2还提供了许多其他标签,如`s:textfield`用于输入文本,`s:textarea`用于多行文本输入,`s:...

    Strus 2的新表单标志的使用

    接下来,我们将详细介绍两个常见而又复杂的表单标签:`&lt;s:checkboxlist/&gt;` 和 `&lt;s:doubleselect/&gt;`。 #### `&lt;s:checkboxlist/&gt;` 标签详解 ##### 核心问题:默认选中某个复选框 开发者常常困惑于如何在 `&lt;s:...

    struts2.0 标签清单

    `&lt;s:doubleselect&gt;` 标签用于创建双列表选择框,允许用户从一个列表中选择项并移动到另一个列表。 ### 13. `&lt;s:if&gt;`, `&lt;s:elseif&gt;`, `&lt;s:else&gt;` 标签 这三个标签构成了Struts2中的条件语句,可以基于表达式的真假...

    struts2 标签 doubleselect动态 用法

    在上述示例的JSP代码中,`&lt;s:doubleselect&gt;`标签的`list`属性绑定到了`categoryList`,这应该是`Action`返回的`List&lt;Dept&gt;`,其中每个`Dept`对象包含部门ID(`id`)和部门名称(`deptName`)。`doubleList`则绑定到`...

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

     strut2 标签详解

    S组标签: 1. `&lt;s:select&gt;`:创建单选下拉框。 2. `&lt;s:set&gt;`:设置变量,可以指定作用范围。 3. `&lt;s:sort&gt;`:对列表进行排序,可以指定比较器。 4. `&lt;s:submit&gt;`:提交按钮,用于提交表单数据。 5. `&lt;s:subset&gt;`:未...

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

    5. `&lt;s:doubleselect list="" doubleName="" doubleList=""&gt;&lt;/s:doubleselect&gt;` - 双下拉框,用于双向选择关联数据。 E部分: 1. `&lt;s:if test=""&gt;`、`&lt;s:elseif test=""&gt;`、`&lt;s:else&gt;` - 条件判断标签,用于根据...

    struts2.0 taglib 标签库

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

    struts2标签介绍

    **S组标签:** 1. `&lt;s:select&gt;` - 创建下拉选择框,可以绑定到Action的属性。 以上是Struts2中部分主要的标签及其用法,它们极大地简化了页面逻辑,使得开发更加高效。理解并熟练运用这些标签是掌握Struts2的关键。

Global site tag (gtag.js) - Google Analytics