struts2 select 默认选中

来源:互联网 发布:nodejs mysql 中间件 编辑:程序博客网 时间:2024/05/21 05:40

需求: 在查询页查询出数据后,点击修改,将对应的值在修改界面展示,对应某些属性为select ,需要在修改界面默认对某个值进行选中。

方案:

       1、跳转新增的action处理:

定义一个list,在新增界面使用

private List isMainList= new ArrayList();
public List getIsMainList() {
return isMainList;
}
public void setIsMainList(List isMainList) {
this.isMainList = isMainList;
}

   跳转新增的方法中进行:

this.setIsMainList(BaseData.getSysBaseTypeList(IS_MAIN_KEY)); //  此处获取到的list为一个bean的list  bean中有属性code_value   cname


2、新增界面展示:

 <td>
                
<s:select
name="rmBean.is_main" id="rmBean.is_main" list="isMainList"
listKey="code_value" listValue="cname" headerKey="0"
headerValue="--请选择--"  
cssClass="vocation"></s:select>
 </td> 

3、修改时在action中增加修改对象:

utilsBean含有2个属性 key   value

private UtilsBean modIsMain = new UtilsBean() ;


public UtilsBean getModIsMain() {
return modIsMain;
}
public void setModIsMain(UtilsBean modIsMain) {
this.modIsMain = modIsMain;
}


跳转到修改界面的方法中进行设置:

this.setIsMainList(BaseData.getSysBaseTypeList(IS_MAIN_KEY));

int  isMain=0;
if(!"0".equals(modBean.getIs_main()))    // modBean为要修改的bean
 isMain =Integer.valueOf(modBean.getIs_main()).intValue();
modIsMain.setKey(isMain+"");
List tmpList = BaseData.getSysBaseTypeList(IS_MAIN_KEY);
for(int i=0 ; i<tmpList.size(); i++){
RmSysBaseTypeBean  sbtBean = (RmSysBaseTypeBean)tmpList.get(i);
if(sbtBean.getCode_value() ==isMain){
modIsMain.setValue(sbtBean.getCname());
break;
}
}


对modIsMain对象进行赋值,在前台界面使用

3、前台修改界面:

<s:select
name="rmBean.is_main" id="rmBean.is_main" list="isMainList"
listKey="code_value" listValue="cname" headerKey="%{modIsMain.key}"
headerValue="%{modIsMain.value}"  
cssClass="vocation"></s:select> 


如果使用这段代码,修改数据中选中的属性会展示2次。

修改采用下面的代码,展示成功:

 <s:select
name="rmBean.is_main" id="rmBean.is_main" list="isMainList"
listKey="code_value" listValue="cname"  value="%{modIsMain.value}" 
cssClass="vocation"></s:select>
                    </td> 

0 0
原创粉丝点击