JAVA

人生若只如初见,何事秋风悲画扇。

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  50 随笔 :: 25 文章 :: 157 评论 :: 0 Trackbacks

在JSP中用到select列表框就如家常便饭般的常见!
以下是我在JSP页面中对此的一些心得(通常会用到Struts+Hebernate+Spring):
我想大概有以下几种方法可以在JSP中得到我们想要的select列表框
1:通过使用HTML中使用普通的select定义

<select name="select">
    
<option value="1">aa</option>
    
<option value="2">bb</option>
    
<option value="3">cc</option>
</select>

当然这样可以实现,但是一旦用到相关的DB操作时,代码中的业务,持久化,显示处理各部分的代码就会全部混到一起.

2:通过Struts的logic标签

<logic:iterate id="types" name="cglist" type="com.jbbis.netedu.common.dto.BaseCategoryDTO"> 
                       
<option value='<bean:write name="types" property="id"/>'> 
                      
<bean:write name="types" property="name"/> 
                      
</option>
       
</logic:iterate> 

其中types代表了存放集合数据的一个句柄,在option中用到它.type是指你集合中的对象.在下面的option中的一些属性值实际上就是指此对象中的字段.比如说property="id", property="name".logic:iterate中的name属性一般是从session,request中得到的,所以对于cglist,很可能在你的action中,有如下的代码:

request.setAttribute("cglist",categorys);

or

session.setAttribute(
"cglist",categorys);

然后就是将其在bean:write标签中输出来.这种方法相比前一种对于DB操作显然要方便,但是假如要在select中加入一些JS的话就比较麻烦了,比如要保存它上次的选择,用JS来实现显得有些麻烦!

3:通过Struts的html:select标签,将此标签内置于html:form内(个人认为,最大的好处莫过于它可以自动保存上次的记录了!).

<html:select property="typeId" onchange="gotothenews(this.value)">
                    
<html:optionsCollection property="typeIds" label="name" value="id"/>
    
</html:select>

typeId为你Struts的ActionForm中对应的一个属性,typeIds为ActionForm中的一个对象数组.name,id均为此数组中对象的属性.lable在optionsCollection表示在select中要显示的内容,value则表示其对应的值.
要注意的是此对象数组记得要全部初始化,比如说你定义的此对象数组若长度为7而你只实例化了6个,则会出现类似
org.apache.jasper.JasperException: No bean specified
的异常!
此方法不但对DB操作方便,而且在对保存记录方面也做得不错呢.在Struts中JSP页面中使用JS时,还老是出现一些意想不到的错误(不知道为什么).

下次遇到了好的对策再贴上来......
posted on 2006-03-07 21:23 Jkallen 阅读(3623) 评论(2)  编辑  收藏 所属分类: JEE学习

评论

# re: 谈select列表框 2007-04-07 16:35 billy
非常的不错,我会经常的光顾!来到你这里可以学习东西,真的不错!希望多谈一些关于Spring方面的东西!  回复  更多评论
  

# re: 谈select列表框 2007-05-23 15:58 buty
<html:select property="orgCode">
<html:option value=""></html:option>
<html:options collection="organizationList" labelProperty="orgCode" property="orgCode"/>
</html:select>
请问这段代码中的两个property分别对应的那哪个属性?谢谢!!  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问