java文件与列表框_谈select列表框

在JSP中用到select列表框就如家常便饭般的常见!

以下是我在JSP页面中对此的一些心得(通常会用到Struts+Hebernate+Spring):

我想大概有以下几种方法可以在JSP中得到我们想要的select列表框

1:通过使用HTML中使用普通的select定义

4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.pngaa4f1150b881333f12a311ae9ef34da474.pngbb4f1150b881333f12a311ae9ef34da474.pngcc4f1150b881333f12a311ae9ef34da474.png

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

2:通过Struts的logic标签

4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png'>4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png

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

4f1150b881333f12a311ae9ef34da474.pngrequest.setAttribute("cglist",categorys);

4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.pngor

4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.pngsession.setAttribute("cglist",categorys);

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

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

4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png

typeId为你Struts的ActionForm中对应的一个属性,typeIds为ActionForm中的一个对象数组.name,id均为此数组中对象的属性.lable在optionsCollection表示在select中要显示的内容,value则表示其对应的值.

要注意的是此对象数组记得要全部初始化,比如说你定义的此对象数组若长度为7而你只实例化了6个,则会出现类似

org.apache.jasper.JasperException: No bean specified的异常!

此方法不但对DB操作方便,而且在对保存记录方面也做得不错呢.在Struts中JSP页面中使用JS时,还老是出现一些意想不到的错误(不知道为什么).

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值