日期:2014-05-17  浏览次数:20695 次

java web 菜鸟,还是下拉菜单的问题,求高人!
想了很多办法还是没解决这个问题,
jsp页面中关键代码:
<jsp:useBean id="sql" scope="application" class="com.wsy.Sqluser"/>//这句想去掉,希望所有jsp请求是servlet处理,不直接调用javabean。
<form action="../MyTest" method="post"> //跳转方式
List list=(List) request.getAttribute("bm"); //引用值
System.out.println(list);

<select name="bumen" id="bumen" style="width:140px;"> //javabean引用下拉菜单可以实现
  <option >请选择部门</option>  
  <%
  List list=(List) request.getAttribute("bm"); //试着引用一下servlet里面的值,结果是null
  System.out.println(list);

  for(int i=0;i<sql.bumenchaxun(sql1).size();i++) //javabean实现效果成功
  {
  %> 
  <option value=<%=i%>><%=sql.bumenchaxun(sql1).get(i)%></option>
  <%}%>
  </select>  

<input type="submit" value="确定">
servlet关键代码:
String sql1="select bumenname from bumen where 1=1"; //查询的语句
try {
List<String> list =sqluser.bumenchaxun(sql1); //这个方法的返回值也是list
System.out.println(list); //跳转以后有结果
request.setAttribute("bm", list);

} catch (SQLException e1) {
e1.printStackTrace();
}

javabean中相关方法:
public List<String> bumenchaxun(String sql) throws SQLException
{
}
运行结果为:
null
实现的目的,登陆界面包括账号、密码和部门,其中部门必须通过数据库查询,现在是直接调用javabean实现的,我希望能通过servlet,就是jsp请求-servlet调用javabean、处理、传参-jsp赋值给下拉菜单,两个jsp为同一页面。

------解决方案--------------------
首先要确定你的页面是否是通过servlet跳转过来的,你这个登陆页面是直接访问的jsp页面吧?
------解决方案--------------------
设置一个默认的值
if( list !=null){
//你原来的处理
}else{
//默认结果,也就是给list赋值
}
------解决方案--------------------
你可以在一个空页面里写js跳转脚本,执行servlet