分享
 
 
 

终于学会了如何使用标签

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

下拉框是一个特别常用的html组件,在struts中的tag也是比较复杂的一个了,如果想真正的将MV分离学会如何使用标签是非常重要的,当然如果是高人,那自己写也是没有问题的^_^

最近作的一个页面上要用到下拉框,我想借此机会多学习一下如何使用标签来更好的将MV分离,因此下定决心一定要将下拉框的内容存放到一个bean里,然后通过标签调用bean,再用<html:optionsCollection>调用bean里面的LabelValueBean的集合。

说起LabelValueBean这个struts下的一个专门为select设计的bean还真是瞒好用的,不过在和同事讨论过程中觉得用这个集合bean来操作select的话,优点是在struts下的确方便,但是如果在其他框架下就成问题了,也就是说通用性差。什么东西都是有他的相对性的,我觉得没有什么可以说是完全通用的,因此我还是觉得用这个类来帮助我实现下拉框的

下面说说我的实现:

1、XXXSelector类,这个类是用来从数据库读取下拉框内容,并封装成LabelValueBean的Vector集合

2、XXXBean类,这个类就是要在页面上调用的bean类,我这里有两个下拉框,设置了两个属性,并对应两个getter方法,setter方法我觉得没有必要了,因为是通过XXXSelector类来设置下拉框内容的。

3、页面上先声明一个bean的引用,<jsp:useBean id="selector" scope="request" class="XXXBean">

4、然后就是在下拉框标签上引用这个bean,并设置好对应的属性。我是这样做的:

<html:select property="xxxId">

<html:optionsCollection name="selector" property="xxxIds"/>

</html:select>

补充:这个html:optionsCollection标签中只设置了两个属性,一个bean的id,另一个就是这个bean中的一个属性xxxIds,这是因为使用了LabelValueBean的好处,也可以说如果你的集合里面属性是label和value来定义的,那么效果和LabelValueBean是一样的,在这个标签里,value的默认值是'value',而label的默认值是'label'。

好了,这样就可以完美的实现了MV的分离工作。看上去就是这么短短的几行代码,但是真给我弄的糊涂了。

下面把我自己在这次学习过程中的总结写出来,共大家分享:

一开始我没有使用optionsCollection 这个标签,而是options这个标签,因为以前用过它,不过在实现上有点不雅,将很多java代码都直接写到了页面上,尤其是在下拉框非常多的时候是非常不舒服的。真是因为上次没有做好,这次才决心一定要做完美些。

This tag differs from the <html:options> tag in that it makes more consistent use of the name and property attributes, and allows the collection to be more easily obtained from the enclosing form bean.

上面这句话是在struts官方网站的userGuide摘下来的,这正说出了options与optionsCollection之间的本质区别。就在于optionsCollection可以使用bean更好的封装下拉框内容,在我这次实现中就是使用了一个bean,封装了多个下拉框需要用到的集合bean,然后通过设置属性property得到对应的下拉内容的集合。

Attribute Name

Description

filter

Set to false if you do NOT want the option labels filtered for sensitive characters in HTML. By default, such values are filtered. [RT Expr]

label

The property of the bean within the collection which represents the label to be rendered for each option. Defaults to "label". [RT Expr]

name

The attribute name of the bean whose properties are consulted when rendering the current value of this input field. If not specified, the bean associated with the form tag we are nested within is utilized. [RT Expr]

property

The property of the form bean, or the bean specified by the name attribute, that will return the collection of objects to be rendered for these options. [RT Expr]

style

CSS styles to be applied to this HTML element. [RT Expr]

styleClass

CSS stylesheet class to be applied to this HTML element (renders a "class" attribute). [RT Expr]

value

The property of the bean within the collection which represents the value to be rendered for each option. Defaults to "value". [RT Expr]

还有一点就是,和我一样的初学者朋友们,一定要有事没事就去http://struts.apache.org/userGuide/看看上面的文档,真是能帮助咱们解决很多困惑的,我以前就是不怎么看,觉得没有什么必要,但是通过这次觉得还真是非常有必要的。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有