本人对Struts2只是刚刚入门,碰到的问题都是非常简单的问题,将其总结汇总,与和我一样的Struts2菜鸟们分享;
1、实现下拉菜单,下拉菜单的内容取数据库中的值;我们可以通过Struts2的<s:select>标签取得;例如:<s:select name="roomId" list="#bean.roomList" listKey="id" listValue="name" headerKey="" headerValue="请选择" theme="simple" ></s:select>;其中 roomList 是room对象的集合;room对象包括两个属性 id 和 name;
但是在实际应用中发生一个奇怪的现象,就是有的下拉框好用,有的下拉框取得的值都是空;我花了很长时间才发现问题的所在:还以:<s:select name="roomId" list="#bean.roomList" listKey="id" listValue="name" headerKey="" headerValue="请选择" theme="simple" ></s:select> 为例,如果我们定义 room对象的类时,命名属性时为 sId,sName,那么用eclipse自动生成的set和get方法为 setsId(...) 和 getsId(....);这时你用<s:select name="roomId"
list="#bean.roomList" listKey="sId" listValue="sName" headerKey="" headerValue="请选择" theme="simple" ></s:select> 是得不到结果的;我猜想<s:select>标签可能是要求得到的对象的set和get方法的后第一个字母必须为大写,即setSId(...)和getSId(...);
2、实现数据的修改,在跳到修改页面时,发现得不到值。后来发现,在Struts2中,必须使用Struts2的标签可得到它的值,例如<s:textfiled name="dept">;如果使用普通的<input>标签,则 <input type="text" name="dept">是得不到值的,应该这样写<input type="text" name="dept" value="<s:property value='dept'/>"> 才能得到值。