当前位置: 代码迷 >> Java Web开发 >> 请问获取下拉菜单值有关问题
  详细解决方案

请问获取下拉菜单值有关问题

热度:88   发布时间:2016-04-16 21:26:47.0
请教获取下拉菜单值问题
本帖最后由 abcxiaoye 于 2015-01-09 23:16:12 编辑
原来的代码是先通过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") 再填到下拉菜单中
这样可以不?