文章来源:http://blog.csdn.net/honey_claire/article/details/7659869
struts2+hibernate做注册页面时,需要动态读取数据库里写好的兴趣爱好。并且兴趣爱好可以是多选的,这时如果单用select就不能满足要求,
js中也代码,需要用到struts2自带的标签,因此在开头需要加入标签库:
<%@ taglib uri="/struts-tags" prefix="s"%>
<div > 兴趣:
<DIV class=oneline id="interestdiv">
<SELECT id="interest" name="interest" multiple="multiple" style="width: 235px">
<s:iterator value="list" id="i">
<option value="<s:property value='#i.id'/>"><s:property value="#i.name"/></option> //此处用到了迭代
</s:iterator>
</SELECT>
<input type="hidden" id="realInter" name="realInter"/>
</DIV>
注意:需要在select中加multiple="multiple这个属性,这表示多选
在上面加入jquery方法,为了实现多选,这是通过调用multiSelect这个方法来实现的,因此需要把这个方法导入进来,
//画兴趣爱好的界面-页面初始化的时候就执行
$(document).ready(function(){
$("#interest").multiSelect({
selectAll: true,
oneOrMoreSelected: '*',
selectAllText: '全选',
noneSelected: '请选择'
},function(obj,display,values){
$("#realInter").val(values);
});
});
//action中的方法例子
public String userRegister(){
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
String [] str = realInter.split(","); //得到一个字符串的数组
try {
session.save(reg);
for(int i=0;i<str.length;i++){
if(str[i] != null && !"".equals(str[i])){ //需要迭代
TblUserInterest tblUserInterest = new TblUserInterest();
tblUserInterest.setUid(reg.getId());
tblUserInterest.setXid(Integer.parseInt(str[i]));
session.save(tblUserInterest);
}
}
session.flush();
tx.commit();
System.out.println("save success");
} catch (Exception e) {
tx.rollback();
e.printStackTrace();
}finally{
session.close();
}
return "success";
}