关于struts2的select 标签

用的是Struts2的select 标签 下拉执行 onchange="this.form.submit()
下拉只有三项 显示A类 B类 或者全部 默认是全部 直接选没事 都能正常显示
我在上面还搞了排序 点了排序之后问题来了 每次点排序 内容显示正常 但是select 那每次都会自动变成全部 虽然显示的是A类或者B类 这个时候你再选全部 不执行了 要选A或者B之后再选全部才能正常执行 愁死人了
请问有办法让 select 的选项 在排序之后不变的吗???

这个很简单啊,你只要要排序时,把下拉值传给服务器,排序出来再赋上值就OK了

java文件
定义一个下拉选项的类属性,相信你已经定义好了
private String type;//生成setXXX(); getXXX();

jsp文件
<select name="type" onchange="this.form.submit() ;">
<option value="0" <s:if test="type=='0'" />selected</s:if>>全部</option>
<option value="1" <s:if test="type=='1'" />selected</s:if>>A类</option>
<option value="2" <s:if test="type=='2'" />selected</s:if> >B类</option>
</select>
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-15
给你一个select做倒排序的代码参考一下:
<html>
<head>
<title>无忧脚本代码测试网页</title>
</head>
<body>
<SELECT name="a" id="a">
<OPTION value="b">b</OPTION>
<OPTION value="e">e</OPTION>
<OPTION value="c">c</OPTION>
<OPTION value="f">f</OPTION>
<OPTION value="a">a</OPTION>
</SELECT>
<script type="text/javascript">
function st(a,b){
if(a>b)
return -1;
else if(a<b)
return 1;
else
return 0;
}
function sort(id){
var s=document.getElementById(id);
if(!s)return ;
var t1=[],t2=[],tt=s.options;
while(tt.length>0){
t1[t1.length]=tt[0].text;
t2[t2.length]=tt[0].value;
tt.remove(0);
}
t1.sort(st);
for(var i=0,c1,c2;c1=t1[i],c2=t2[i];i++){
tt.add(new Option(c1,c2));
}
}
sort("a");
</script>
</body>
</html>
第2个回答  2011-09-15
在action 中定义 private String selectValue; //getter setter
select 的名字必须是 selectValue <s:select name="selectValue" list="" id ="" ..... />
这样select 的选项就不变了

你试试 我坐等收分
第3个回答  2011-09-15
设置保持状态属性,和默认属性。
并且控制请求的,让他必须手动下拉,并回车后才取值
相似回答
大家正在搜