• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

谈select列表框

servlet/jsp 搞代码 7年前 (2018-06-18) 168次浏览 已收录 0个评论

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

谈select列表框<select name=select>
谈select列表框    
<option value=1>aa</option>

http://www.gaodaima.com/?p=43740谈select列表框

谈select列表框    <option value=2>bb</option>
谈select列表框    
<option value=3>cc</option>
谈select列表框
</select>

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

2:通过Struts的logic标签

谈select列表框<logic:iterate id=types name=cglist type=com.jbbis.netedu.common.dto.BaseCategoryDTO> 
谈select列表框                       
<option value=/’<bean:write name=types property=id/>/’> 
谈select列表框                      
<bean:write name=types property=name/> 
谈select列表框                      
</option>
谈select列表框       
</logic:iterate> 

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

谈select列表框request.setAttribute(cglist,categorys);
谈select列表框
谈select列表框or
谈select列表框
谈select列表框session.setAttribute(
cglist,categorys);

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

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

谈select列表框<html:select property=typeId onchange=gotothenews(this.value)>
谈select列表框                    
<html:optionsCollection property=typeIds label=name value=id/>
谈select列表框    
</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时,还老是出现一些意想不到的错误(不知道为什么).

下次遇到了好的对策再贴上来……

欢迎大家阅读《谈select列表框》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:谈select列表框

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址