您的位置:首页 > 编程语言 > Java开发

struts2 select 默认选中

2015-07-04 22:26 357 查看
需求: 在查询页查询出数据后,点击修改,将对应的值在修改界面展示,对应某些属性为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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: