select 下拉框 值和文本text均获取

来源:互联网 发布:万能ups监控软件 编辑:程序博客网 时间:2024/04/25 14:39

资源Resource对象中同时有类别Category对象的categoryid,categoryname字段

然后页面的添加修改Resource的时候显示如下:

<s:select list="categorys" name="resource.categoryid" listKey="id" listValue="name" onchange="choice('categoryname',this.id)"  id="category" label="类别" headerKey="0" headerValue="--请选择--"></s:select>

如果以前做的时候:

(1)在Action中从resource对象取出categoryid 的值Int cateid=resource.getCategoryid();

(2)根据categoryid查出category对象Category cate=dao.getCategoryByid(cateid);

(3)设置resource的属性resource.setCategoryname(cate.getCategoryName);

缺点:无论是添加还是修改均会访问数据库(如果访问量过大的话,会给服务器照成的压力增加)!

所以最好能在用户选定(修改)下拉框id后,name也有值

方法:选定id后将显示的text值取出来放进隐藏域(取名为‘对象.属性’)中,最后提交的时候可以一起发给后台的Action

呵呵,也许这个方法大家早都会了!

只是开始我还笨笨的在后面查数据库,后来还貌似很聪明的教同学们:为了给服务器减少压力,应该用Ajax在页面查出来直接赋值……

现在想想还是自己太懒了,其实text是可以直接取到了,又何必非要查数据库呢?

下面就是我用的方法,有繁琐、待更正、或其它方法的同学欢迎拍砖!!!!

 

对了,还要提醒一下大家:

如果你用的是Html标签的时候修改页面要这样写

<input type="hidden" name="resource.categoryname" id="categoryname" value="<s:property value='resource.categoryname'/>" />

否则:当你select没修改的话,resource.categoryname就为空了(这个值就丢失了)

 

每天进步一点点,加油!!!

 

原创粉丝点击