<s:select>下拉框是空白的解决办法

首先,定义了一个Department的JavaBean对象如下

DAO.java

在一个Action类Employee.java中将depts放入requestMap中

 

最后,在index.jsp里定义了一个链接

Struts.xml如下:

input.jsp如下:

结果显示如下:

 

可以看到,input.jsp页面打印出来的requestScope.depts是正常的。也就是说,<s:select>标签出了问题,而且是listValue="deptName"无法获取到deptName。

 

原因分析:

 <s:select>标签,解释下这个标签属性: 
headerValue : 默认值value 
headerKey :    默认name 
list : 源数据 (可以在action方法里从数据库获取list) 
name : 被选数据存放的位置(需在action类(Employee)中定义该对象) 
listKey : 下拉选项的name 
listValue : 下拉选项的value 
value : 默认值 

 

 

仔细检查department.java文件,发现department类的成员变量deptName的get、set方法的大小写写错了,怪不得<s:select>的listValue="deptName"无法获取到deptName。

解决办法:将departmnet.java的成员变量deptName的get、set方法改正即可让<s:select>的listValue="deptName"获取到deptName。

运行结果如下:

 

 

在save.jsp页面显示该结果:

save.jsp页面结果如下:

 

 同时,从上面的运行结果也可以看出,<s:select>标签的name属性存放的是listKey的值,而不是listValue的值,listValue是显示出来的值。

 

 

 

原文地址:https://www.cnblogs.com/TTTTT/p/6057090.html