想了很多办法还是没解决这个问题,
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"); 
     System.out.println(list+"123");
     for(int i=0;i<sql.bumenchaxun(sql1).size();i++) 
     { 
     %> 
            <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);
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为同一页面。

解决方案 »

  1.   

    我连jsp+servlet+javabean还没搞明白,如果在去学ajax估计就晕了!
      

  2.   

    那你就把javabean改造成servlet不就得了
      

  3.   

    请注意问题的核心。
    jsp是什么?
    jsp出现之前是先有servlet的。但是由于要到后台写很多。out.writer("some thing");程序员烦得不行。就出现了jsp
    jsp上面写的东西,最终会编译成servlet的。而你在页面上写的任何东西都会加个out.writer("some thing");除非你用了标签如:<%%><%=%>${requestScope.ccc}等,当遇到这些标签的时候再转换的过程中会翻译成具体的程序逻辑。
    找半天找不到原因,你应该去查看编译过的servlet文件看看逻辑有没有出入。
      

  4.   


    不错,确实是这个问题,是逻辑错误,我应该先进入servlet里面获取到list然后在用带参数的跳转到jsp登录页面上!不应该在jsp的登陆页面上纠结!!