java multibox,struts html:multibox标签(转载)

问题原型:

添加页面中有10个checkbox,用户选中了5个后提交

修改页面中应显示10个checkbox,同时应该有5个已经被选中

详细实际问题:

为了满足业务需要,从linux安装盘中的comps.xml中读取提供的服务所依赖的包

显示在页面上,根据包的类型(default,mandatory,optional)决定显示的方法

default默认选中,mandatory不提供选择,optional为用户可选

4f1150b881333f12a311ae9ef34da474.png

<

c:choose

>

4f1150b881333f12a311ae9ef34da474.png

<

c:when

test

="${p.type == 'mandatory'}"

>

4f1150b881333f12a311ae9ef34da474.png

<

td

>

4f1150b881333f12a311ae9ef34da474.png

<

input

type

="checkbox"

name

="nodeRPMS"

4f1150b881333f12a311ae9ef34da474.png    style

="VISIBILITY: hidden; "

4f1150b881333f12a311ae9ef34da474.png    checked

="true"

4f1150b881333f12a311ae9ef34da474.png    value

="

${p.rpmName}"

/>

"/>

4f1150b881333f12a311ae9ef34da474.png

td

>

4f1150b881333f12a311ae9ef34da474.png

c:when

>

4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.png

<

c:when

test

="${p.type == 'default'}"

>

4f1150b881333f12a311ae9ef34da474.png

<

td

>

4f1150b881333f12a311ae9ef34da474.png

<

input

type

="checkbox"

4f1150b881333f12a311ae9ef34da474.png       name

="nodeRPMS"

checked

=true

4f1150b881333f12a311ae9ef34da474.png

value

="

${p.rpmName}"

/>

"/>

4f1150b881333f12a311ae9ef34da474.png

td

>

4f1150b881333f12a311ae9ef34da474.png

c:when

>

4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.png

<

c:when

test

="${p.type == 'optional'}"

>

4f1150b881333f12a311ae9ef34da474.png

<

td

>

4f1150b881333f12a311ae9ef34da474.png

<

input

type

="checkbox"

name

="nodeRPMS"

4f1150b881333f12a311ae9ef34da474.png       value

="

${p.rpmName}"

/>

"/>

4f1150b881333f12a311ae9ef34da474.png

td

>

4f1150b881333f12a311ae9ef34da474.png

c:when

>

4f1150b881333f12a311ae9ef34da474.png

c:choose

>

在处理层,采用struts的form来接受,定义string [] nodeRPMs接受即可

接受后存在数据库里,然后读出来在显示在页面上

在修改页面,首先应该有全部的checkbox,同时用户选中的应该已经被打勾(这来自数据库读出的记录),经过中午的查找资料

才知道可以使用mutilbox解决这个问题

4f1150b881333f12a311ae9ef34da474.png

<

c:choose

>

4f1150b881333f12a311ae9ef34da474.png

<

c:when test

=

"

${p.type == 'mandatory'}

"

>

4f1150b881333f12a311ae9ef34da474.png

<

td

>

4f1150b881333f12a311ae9ef34da474.png

<

input type

=

"

checkbox

"

name

=

"

nodeRPMS

"

4f1150b881333f12a311ae9ef34da474.png    style

=

"

VISIBILITY: hidden;

"

4f1150b881333f12a311ae9ef34da474.png

checked

=

"

true

"

1fa987a29c6482f53d401256f96355eb.png

ca75c07623e1b494fee67e8f316fc310.gif    value

=

"

"

$

9b8a8a44dd1c74ae49c20a7cd451974e.png

{p.rpmName}

"

/>

"

/>

4f1150b881333f12a311ae9ef34da474.png

td

>

4f1150b881333f12a311ae9ef34da474.png

c:when

>

4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.png

<

c:otherwise

>

4f1150b881333f12a311ae9ef34da474.png

<

td

>

4f1150b881333f12a311ae9ef34da474.png

<

html:multibox property

=

"

nodeRPMS

"

>

4f1150b881333f12a311ae9ef34da474.png

<

c:

out

value

=

"

${p.rpmName}

"

/>

4f1150b881333f12a311ae9ef34da474.png

html:multibox

>

4f1150b881333f12a311ae9ef34da474.png

td

>

4f1150b881333f12a311ae9ef34da474.png

c:otherwise

>

4f1150b881333f12a311ae9ef34da474.png

c:choose

>

mutilbox会根据你读出的值来设定

struts中的checkbox是单选的,它的值应该只有true和false或者yes no或者on off之分;

r如果希望使用一组可以多选的checkbox,在struts中的页面标签应该是html:multibox,它的用法:或者

value2

真正载页面上使用时可能是这样:

a

b

c

当然"strArray"一定是页面相对应的formbean中的一个属性,并且应该是数组:

private String[] strArray; //提供get set方法

这样,如果我们在页面上面选中了前两个,则strArray.length=2;strArray[0]里面的值是a,strArray[1]里面的值是b;

如果我们把form中的strArray设置为strArray[0]="b",strArray[1]="c",则转到页面之后,页面上只有后两项被选中

所以这样就可以解决问题了

posted on 2006-04-05 16:18 似水流年 阅读(4868) 评论(1)  编辑  收藏 所属分类: Struts

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值