原来的代码是先通过med_add.jsp提交进入med_save.jsp
med_add.jsp提交方法如下:
<html:form action="baseData/med.do" method="post" focus="medNo"
onsubmit="return add();">
<input type="hidden" name="command" value="findMedicineByMedNo" />
<html:hidden property="id" />
med_save.jsp显示下拉框代码如下
<tr>
<td align="right">类别:</td>
<td align="left">
<logic:present name="cs" scope="request">
<select name="categoryId" id="categoryId">
<logic:notEmpty name="cs" scope="request">
<logic:iterate id="ele" name="cs" scope="request">
<logic:equal value="${ele.id}" name="InfoForm" property="categoryId" >
<option value="<bean:write name='ele' property='id' />" selected>
<bean:write name="ele" property="name"/>
</option>
</logic:equal>
<logic:notEqual value="${ele.id}" name="InfoForm" property="categoryId">
<option value="<bean:write name='ele' property='id' />">
<bean:write name="ele" property="name"/>
</option>
</logic:notEqual>
</logic:iterate>
</logic:notEmpty>
<logic:empty name="cs" scope="request">
<option value="-1" >没有添加类别</option>
</logic:empty>
</select>
</logic:present>
</td>
</tr>
Action类相关代码:
// 根据medNo查询药品
public ActionForward findMedicineByMedNo(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
// 获取MedicineForm
InfoForm df = (InfoForm) form;
Info med = null;
// 查询药品
InfoDao dao = new InfoDao();
med = dao.findMedicineByMedNo(df.getMedNo());
// 如果药品存在,更新数量,否则添加新药
if (med != null) {
BeanUtils.copyProperties(df, med);
request.setAttribute("med", "med");
return mapping.findForward("medUpdate");
} else {
CategoryDao cd = new CategoryDao();
List list = cd.findByHQL("from Category");
request.setAttribute("cs", list);
return mapping.findForward("medSave");
}
}
现在我不想通过med_add.jsp进入med_save.jsp,想直接打开med_save.jsp
想通过下面的方法中的List获取下拉菜单选项
// 添加药品
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
Info med = null;
// 获取MedicineForm
InfoForm df = (InfoForm) form;
InfoDao dao = new InfoDao();
med = new Info();
BeanUtils.copyProperties(med, df);
CategoryDao cd = new CategoryDao();
Category category = cd.loadCategory(df.getCategoryId());
med.setCategory(category);
List list = cd.findByHQL("from Category");//查找类别
request.setAttribute("cs", list);
dao.saveOrUpdate(med);
return mapping.findForward("addSuccess");
}
在页面的下拉菜单怎么才能获得request.setAttribute("cs", list)的值?不知我说清楚没有,请教高手。谢谢!!
------解决思路----------------------
在页面中先获取list , request.getAttribute("cs") 再填到下拉菜单中
这样可以不?