wml并不支持selected属性,需用ivalue属性。切记切记。。。
简易例子:
<%
int selected = 0, i = 0; String optionList = "";
List<SexInfo> sexs = (List) request.getAttribute("sexs");
for(SexInfo sex : sexs){
i++;
if("你的值" == sex.getId()){
selected = i;
}
opgionList += "<option value=\"" + sex.getId() + "\">" + sex.getName() + "</option>\r\n";
}
%>
<select name="sex" ivalue="<%=selected %>">
<%=optionList %>
</select>
ps: ivalue返回有效Option的序列号, 另有资料说Opera上的ivalue从0开始,某些手机上的ivalue是从1开始.这个待验证.
1. selected="selected"
01.
<%UserLoginType ut = (UserLoginType)request.getAttribute(
"ut"
);%>
02.
<c:
if
test=
"${ut!=null}"
>
03.
<select name=
"logintype"
>
04.
<%
if
(ut.getLogintype().equals(
"S"
)){ %>
05.
<option value=
"S"
selected=
"selected"
>
06.
否2
07.
</option>
08.
<option value=
"R"
>
09.
是2
10.
</option>
11.
<%}%>
12.
<%
if
(ut.getLogintype().equals(
"R"
)){ %>
13.
<option value=
"S"
>
14.
否3
15.
</option>
16.
<option value=
"R"
selected=
"selected"
>
17.
是3
18.
</option>
19.
<%}%>
20.
</select><br /></c:
if
>
2.使用select的ivalue属性。
01.
02.
<%UserLoginType ut = (UserLoginType)request.getAttribute(
"ut"
);
03.
int ivalue=1;
04.
%>
05.
<c:
if
test=
"${ut!=null}"
>
06.
<%
07.
if
(ut.getLogintype().equals(
"S"
)){
08.
ivalue=1;
09.
}
10.
else
if
(ut.getLogintype().equals(
"R"
)) {
11.
ivalue=2;
12.
}
13.
%>
14.
<select name=
"logintype"
ivalue=
"<%=ivalue%>"
>
15.
<option value=
"S"
>
16.
否2
17.
</option>
18.
<option value=
"R"
>
19.
是2
20.
</option>
21.
</select><br /></c:
if
>
<p>Please choice your favourite Web.<br/>
<select name="X">
<option value="S">sina</option>
<option value="Y">yahoo</option>
</select>
<p>
</card>
上例是一个基本的单选列表,选择的结果被赋值给X。
示例2:
<card>
<p>Please choice all your favourite Web.<br/>
<select name="X" iname="I" ivalue="1;3" multiple="true">
<option value="S">sina</option>
<option value="Y">yahoo</option>
<option value="N">netease</option>
</select>
<p>
</card>
上例是一个使用了iname和ivalue的多选列表,I被预置为 1;3 。假如用户选择了sina和yahoo,X被赋值为 S;Y,I被赋值为 1;2。假如用户不做任何选择,I等于1;3,X内容为空。