00:00
通常情况下都用它来提交一个布尔值,真正的多选呢,用后边的叫check box list check box list啊,对于radio select check box list,他们都会生成一组radio单选一组,Select下拉框一组,Check box list多选一组,这个时候呢,有三个非常重要的属性,分别是list list key跟value,看一下。等一下啊,大家看整个这个呀,叫啥呀,整个这个是一组radio了,这里边不一样在哪呢?是不是这个值和这个键呢,123和这个后边这个显示这个label吧,而这个radio跟这个CC是不是一模一样啊好了,这两个我们不看看这个123和这个亚特兰大,芝加哥,还有后边这个城市哈,那整个这个叫一个list。
01:13
好了,而123叫list key,而后边显示的这个值叫list value,这就是这三个属性,这就是这三个属性,我们可以把一个string,一个数主,一个map或collection赋给这个例子的属性。List属这块没有啊,整个是一个list,好吧,我们接着来看方若我这样写,List里边直接利用OG构建了一个数组,那这个时候这个value和这个label都是它,好了,如果我传入的是一个。Map的话,那这个K就是什么呀,K就是这个value,这个值就是我们这块显示的这个label再来。
02:07
往后直接看它吧,啊,比方说我有一个city,我这个city呢有两个属性,一个叫CD,一个叫city name啊我在request里边的话呢,已经把这个C放好了,页面上我这样写的,大家看select,我指定了一个list,这list子要这么写的,啥意思啊,request.list我是不是request里边放了这样的一个CC的一个数组啊好,放好之后的话呢,这叫list好了,这个时候我们需要指定list key跟list value list key指定集合里边元素的一个属性叫U,叫ctd,它一样。It value name跟他一样,这个时候他怎么了?这个时候显示的样子就是这个样子。
03:03
好了,基本上说完了,看效果。我们为了能够这样显示呢?我们事先得做一点准备,我就不经过那个action了哈,当前一面我直接写,但是我需要来构建一些。对象构建一些类来,我也来写一个C。In。好了,对应的get。对,构造器,为了我们创建方便。
04:01
好了,无惨的构造起写完。上这边来之前呢,创建一个。等于六。ADD new 1001。23400B。Request点。
05:11
放完好了,现在的话呢,我来进行显示。首先我们先来写一个简单的啊,来写一个这个性别,性别是单选还是多选,哎,大家还是很快的啊,嗯,叫radio,我直接来构建一个。直接来构建一个麦,这样构建吗?OL这样构建来一。六。赢。再写一个label,真的好了,再搞一个你在哪个城市,喜欢哪个城市s check box list。按照。
06:09
指定request范围内的c OK this key is value哈,再来,Value,哦,Name。一个。保存看效果。出错,出这个错的原因呢,是因为某一个标签我没有指定name属性,哪个没指定啊,都没指定是吧,没指定name的话,我提交什么呀name。真的。
07:01
下来。来家看没有跟非没有吧,ABB c DD吧,源代码找一个。大家看这个Y6值对吧,显示的也对,看这个Y6值是不是一和零啊,Ma跟female o了啊,你看这样构建是不是非常方便呢?你以前你想构建这个,嗯,多选或者是单选的话,你起码得加个便利吧,便利吗?这边不需要这样显示就可以了。回来,哎,这就是我们的list list key is value,应该说呃,特别的好用,好这个图呢,刚才我们已经看到了哈。
08:09
又是一个跟刚才那个差不多。Video。选一单选吗?Select,我们再来说一下这个select,这个select用法的话呢,跟我们平面那个用法差不多,但是呢,它里边可以多两个东西,又见指针比我们看我们可以用一个什么呀,叫header key he value。而且还有一个option group下边list,这个我们刚才已经用到了。回来。哎。我们要指定一个select list。我直接写。我直接进行构造。
09:03
另一个数组,11 12、13、十四十五十六十七十八、19。20好了,然后的话呢,我指定一个hi key key跟value。嗨,第五,可什么也不写,嗨歌,我说请选择。请选择好了。Name叫H。直。Table找一个看一看先。是这么一个东西吧,啊,从一到20好了,那我还可以再接着写。在里边我们可以指定一个s option group。
10:07
指定。一个label说呀,这个年龄段啊,是从。21~30的这个年龄段,然后呢,我也指定一个例哈,我们有指定例例Y度,这时候什么了,这个时候这个里边一个一个属性,同时注意这跟Y吧,再找一个,再找一个31~40。21、22、24、25、26、27、28、29开始40。39、38、37、36、35、34、33、32、31搞定。
11:11
好,看这个样子。哦,哎哟,又出错了,出错的原因呢,是因为我在用这个,呃,Op group的时候,我在这个例子里边必须指定key和value。而不能像现在这样用一个集合这个十一十二啊,既作为键又作为值,这里边的话呢,必须同时有一个键,有一个值。我们改一下,我们只改为一组哈,要不的话太麻烦了。一个一个改的话,这个我写一个。21。你给我写一个。31 OK,电直对。再看还是不行,嗯,啊,对,得要下井号,井号井号是什么呀?是不是个麦啊。
12:13
好了,再看看是一个什么特点吗?中间可以加上一个,好像是一个二级选项似的,看见了吧,但这个有一个特点是什么呀,必须得是有见有值,你看我上面这个怎么写的,我这个11是不是既可以作为见,又可以作为值啊,那底下这个不行,所以说你要写的话,你得这么写。三十二二十二二十二,那其中有一个是K,一个是Y9,我现在的话呢,我特意这样写哈。好了,T作为Y6值。Value周围显示那个label看着哈,所以说我们显示的我们能看见这个三,能看见这个是应该是333找一个。
13:07
是吧,OK这块的话呢,需要我们注意一下,OK,这就是我们的。好了,那本身的这个list list key value,包括label,包括name,说清楚了这块啊,需要额外的说一下,说什么呢?说这个s option。可以。用作s select标签,用于显示更多的下拉框,显示效果是这样的。
14:00
好了,但呢,注意。需要注意的是,必须指定键值对,必须有间值段,而不能使用一个集合。然后让其直既作为电又作为指。那这里边呢,我们还需要说一下。并不是意味着这个list里边只能放map。是这意思吧,就是说呃,我是一个键一个值,这没问题啊,我放的是一个map map不是一个键值对吗?其实我们这个里边我们还可以像前面我们讲这个check box一样,我直接放一个。List,这是一个集合,然后用list key跟list value的方式去指定这个键值,对,是不是也可以呀?
15:09
那结论就是,嗯,我们需要指定这个键值,对,有两种方式,一种方式的话呢,我们可以使用简洁的map的方式,另外一种方式我们也可以使用。指定一个list,然后这里边是包含对象的,然后使用list kick list value的方式去指定那个键值,对这个例子呢,我们在前面已经举过了哈,这块的话呢,我就不再举这个例子。啊,这就是我们说的这个叫集合的这样的一个标签,好这个也完事,这就是我们前面我们说的,你看check box list显示的就是一个兴趣标签,而这个呢,单选这个就是check box,好这个完了之后的话呢,我们我们是希望提交一下,看看我们到我们这个集合里边到底是个神马东西。
16:01
第一个一个一个写哈,Private。一个值吗?下边private轮数主办是吧,横是吗?还有一个一个值吧,String的好了,写上对应的代赛的方法,它写对不对啊。重写兔子。走一个。写吧,123456,注意哈,这块我只能AA,这块我只能Java。
17:01
Mar的female AB CC指定一个333走。发现一点问题哈,这块是不是没给我回显上没回显这个值对不对呀?1001AA passwor哦,这个值是对的吧?R2这个是对的吧,真的是零,刚才我选的是什么?是男还是女啊female这也是对的,这个C不对C怎么了?回来我指定的是一个数组吧,看看哦cities啊,那我就不改这块了哈,改这块这个特点是不是不用去改那个源代码了,块写错了,因为它不对应不行。
18:01
我带走来改成AA,密码623JAVA艾瑞的LAB,另一个31,走看看101怎么来的呀,我们的隐藏域里面是不是始终有这个值呢呀,OKAA123JAVA Mar的一,那还是空。为什么还是空啊,我刚才我这块的话呢,我是保我是这个写了,但我这块我说没刷新的,刚才提交的时候还是按cities提交的,所以说再提交一次应该没问题了,来A23JAVAP走。31提交这个没问题啊,是不是OK啊,好了,挺好,但这三个没给我回显啊。
19:09
为啥呀,往上翻打开,我们是不是自放了一个action呢?那你自个儿放的这个值数没有啊,它不危显,所以说呢,哎,我们把这个给它移除,不自个放了,想看一下回显的效果,跳保唇。来找一个。直接刷就可以,我就想看回钱,大家看这个没亏钱吧。为啥嘞啊,我挑上啊,再看直接提了有我指定female哎,我指定二这个这个19找一个。
20:07
CDDD没有没有问题吧,19看值值是不是也还好啊,为啥没有回显嘞,那么我们这样字符串为好用,我们改一下,把它改成list。你这样的。Control抽F,来哦,走control o。有一个错了。我怎么?我不傲了吗?
21:02
List string。保存还有啊。就直接指定。选走一个。怎么了,好使了吧?哦,那个宿主不行,List就好使,哎,这是我们需要注意的一个地方,但是这个影响对我们来说没有吧,我们是不是操作集合更方便啊,哎,需要注意过来看有一个需要注意的啊,在这。
22:03
服务端。需要使用集合类型以保证。能够被正常。的写好了,这是我们需要注意的两个点,总结一下,表达标签目前给我们最直接的感觉就是用起来比较简单,感觉它跟那个HTML的form标签怎么样。比较像。第二个就是他给我们提供了表单回显的功能。让我们开发的话呢,更加简洁。第三个,那我们要是使用这个s form标签的话呢,它可以帮我对这个表单进行自动的格式化,就加上一个table,使显示起来更加规矩。
23:03
第四个。啊,我们再用这个。表单的时候呢,我们占用这个form标签的时候呢,我们可以跟直站有紧密的这个关联啊,以使我们这个显示更加的容易。好了,这是我们说的几点。那有两个特别需要注意的。一个是我们要我们这个check box list,如果要是想保证回显的话,在服务端需要使用集合类型。看一下服务端city。City是一个集合类型,这是我们需要注意的。像正常回显的话,我们开始用的是字符串数组,你才发现回显有问题,于是的话呢,改为了集合类型。欧了。再来。
24:01
还有一个需要注意的,我们用这个I select呀,我们可以指定它的这个,呃。S open group这样的一个子节点,然后的话呢,显示可以分层次显示,但是这里边儿我们这个list里边,我们必须得指定这个键值,对。那指令建制对的话,我们可以使用map,也可以像我们这个sb list一样,指令一个集合,然后通过list key跟list value的方式指那个建制队,如果不指定建制队的话。没有办法显示出错。再看我们的PPT过来,主题的话呢,我们后边再说。大家啊,在课后完成这样的一个练习,这个练习呢是这样,我有一个EP引的UI,我在我点这个超链接的时候啊,我们需要从数据库里边获取部门的集合。
25:05
角色的集合,就是说我这个部门啊和这个角色啊,并不是写上去的哈,而是来源于数据库,懂这个意思吧,就是我显示这个页面之前,我需要通过一个action培训部和和什么什么部,以至于这个角色是来源于数据库,当然你可以不选数据库哈,但是你需要在我们这个呃,DAO里面来提供这样这样的方法,然后在我们这个action里面,需要把这个departments跟Rose放到集合里面,然后实现一个动态的显示,然后点提交的时候啊,我这块我会选择信息什么信息啊啊,选择第二个部门,这个角色是二和三啊,整个的这个木结构是这样的,我需要一个DADA里边的话呢,需要定义这样两个方法,我还需要一个department,需要一个employee,需要一个肉这个。
26:05
泡是那个action类,然后这块的话呢,提供这样的两个JSP,好吧,下课吧。
我来说两句