Java 在jsp页面上检索下拉选项的数组值时出现问题

Java 在jsp页面上检索下拉选项的数组值时出现问题,java,jsp,model-view-controller,foreach,Java,Jsp,Model View Controller,Foreach,我必须从不同的表中获取值,并且值不止一个,所有值都在不同的下拉框中,我必须在框的基础上显示,我已经这样做了,我不确定我的方法是否正确,但我得到了值,但最后当我尝试选择值时会发生什么,就像这样[saurabh,prakash,karan]在一行中使用数组符号,但我需要saurabh,在下一行中使用prakash,所以这是我的问题,这里是我调用empDetail方法的servlet类 @WebServlet(name = "EmployeeMapping", urlPatterns = {"/Em

我必须从不同的表中获取值,并且值不止一个,所有值都在不同的下拉框中,我必须在框的基础上显示,我已经这样做了,我不确定我的方法是否正确,但我得到了值,但最后当我尝试选择值时会发生什么,就像这样[saurabh,prakash,karan]在一行中使用数组符号,但我需要saurabh,在下一行中使用prakash,所以这是我的问题,这里是我调用empDetail方法的servlet类

 @WebServlet(name = "EmployeeMapping", urlPatterns = {"/EmployeeMapping"})
 public class EmployeeMapping extends HttpServlet {
 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
  HttpSession session = request.getSession(true);     
  Employee emp1 = (Employee)session.getAttribute("emp1");
  EmployeeBean eb = new EmployeeBean();
  List<Employee> leave1 = eb.empDetail(emp1); 
  if(emp1.isValid())
  {
    request.setAttribute("leave1",leave1);
    response.sendRedirect("AssignProject.jsp");
  }}
   @Override
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
  processRequest(request, response);
   }
  @Override
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
  processRequest(request, response);
     }
  @Override
  public String getServletInfo() {
  return "Short description";}}
@WebServlet(name=“EmployeeMapping”,urlPatterns={”/EmployeeMapping})
公共类EmployeeMapping扩展了HttpServlet{
受保护的void processRequest(HttpServletRequest请求、HttpServletResponse响应)
抛出ServletException、IOException{
HttpSession session=request.getSession(true);
Employee emp1=(Employee)session.getAttribute(“emp1”);
EmployeeBean eb=新EmployeeBean();
列表1=电子商务详情(emp1);
if(emp1.isValid())
{
request.setAttribute(“leave1”,leave1);
sendRedirect(“AssignProject.jsp”);
}}
@凌驾
受保护的void doGet(HttpServletRequest请求、HttpServletResponse响应)
抛出ServletException、IOException{
processRequest(请求、响应);
}
@凌驾
受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)
抛出ServletException、IOException{
processRequest(请求、响应);
}
@凌驾
公共字符串getServletInfo(){
返回“简短描述”;}}
这是我的方法

  public List<Employee> empDetail(Employee emp1) {
  List<Employee> leave1 = new ArrayList<Employee>();
  List<String> myList1 = new ArrayList<String>();
  List<String> myList2 = new ArrayList<String>();
  List<String> myList3 = new ArrayList<String>();
  List<String> myList4 = new ArrayList<String>();
  try{
  con = ConnectionManager.getConnection();
  stmt1 = con.createStatement();
  String Query11 = "SELECT projectname FROM addproject";
  System.out.println("Query1 is" +Query11);
  rs1 = stmt1.executeQuery(Query11);
  while(rs1.next())
  {
  String z =(rs1.getString("projectname"));
  System.out.println("...11." +z);
  myList1.add(z);
  }
   emp1.setPrjname(myList1);
   stmt2 = con.createStatement();
  String Query12 = "select empName from empinfo where access_type ='teamleader'";
  System.out.println("Query1 is" +Query12);
  rs2 = stmt2.executeQuery(Query12);
  while(rs2.next())
  {
String p = rs2.getString("empName");
System.out.println("...11." +p);
myList2.add(p);
  }
  emp1.setTlname(myList2);
  stmt3 = con.createStatement();
  String Query13 = "select empName from empinfo where access_type ='manager'";
  System.out.println("Query1 is" +Query13);
  rs3 = stmt3.executeQuery(Query13);
  while(rs3.next())
  {
  String q = rs3.getString("empName");
  System.out.println("...11." +q);
  myList3.add(q);
  }     
  emp1.setManname(myList3);
  stmt4 = con.createStatement();
   String Query14 = "select empName from empinfo where access_type ='employee'";
   System.out.println("Query1 is" +Query14);
   rs4 = stmt4.executeQuery(Query14);
   while(rs4.next())
  {
  String r = rs4.getString("empName");
  System.out.println("...11." +r);
  myList4.add(r);
  }
   emp1.setEmpname(myList4);
   leave1.add(emp1);
   emp1.setValid(true);
  }
  catch (SQLException  ex) {
  } finally {
      try {
          if (pstmt != null) {
              pstmt.close();
          }
          if (con != null) {
              con.close();
          }
      } catch (SQLException ex) {
          Logger.getLogger(EmployeeBean.class.getName()).log(Level.SEVERE, null, ex);
      }
    }
    return leave1;
    };
公共列表emp1详细信息(员工emp1){
List LEVE1=新的ArrayList();
List myList1=new ArrayList();
List myList2=new ArrayList();
List myList3=new ArrayList();
List myList4=new ArrayList();
试一试{
con=ConnectionManager.getConnection();
stmt1=con.createStatement();
String Query11=“从addproject中选择项目名称”;
System.out.println(“Query1是”+Query11);
rs1=stmt1.executeQuery(查询11);
while(rs1.next())
{
字符串z=(rs1.getString(“projectname”);
System.out.println(“…11.”+z);
myList1.添加(z);
}
emp1.setPrjname(myList1);
stmt2=con.createStatement();
String Query12=“从访问的empinfo中选择empName\u type='teamleader';
System.out.println(“Query1是”+Query12);
rs2=stmt2.executeQuery(查询12);
while(rs2.next())
{
字符串p=rs2.getString(“empName”);
System.out.println(“…11.”+p);
myList2.添加(p);
}
emp1.委托人姓名(myList2);
stmt3=con.createStatement();
String Query13=“从访问的empinfo中选择empName\u type='manager'”;
System.out.println(“Query1是”+Query13);
rs3=stmt3.executeQuery(查询13);
while(rs3.next())
{
字符串q=rs3.getString(“empName”);
System.out.println(“…11.”+q);
myList3.添加(q);
}     
emp1.setManname(myList3);
stmt4=con.createStatement();
String Query14=“从访问的empinfo中选择empName\u type='employee';
System.out.println(“Query1是”+Query14);
rs4=stmt4.executeQuery(查询14);
while(rs4.next())
{
字符串r=rs4.getString(“empName”);
系统输出打印项次(“…11.”+r);
myList4.添加(r);
}
emp1.setEmpname(myList4);
1.添加(emp1);
emp1.setValid(true);
}
catch(SQLException-ex){
}最后{
试一试{
如果(pstmt!=null){
pstmt.close();
}
如果(con!=null){
con.close();
}
}catch(SQLException-ex){
getLogger(EmployeeBean.class.getName()).log(Level.SEVERE,null,ex);
}
}
返程1;
};
这是我的jsp页面,在其中我得到了像[saurabh,prakash,karan]这样的值,但如果我给出的是${emp1.prjname}这个${emp1.prjname[0]},那么我得到的是saurabh,非常明智,在这里我面临着无法循环的困难,所以请任何人帮助我

 <%if(session.getAttribute("emp1")==null)
 {
 String message ="please login first";
 request.setAttribute("message", message);
  request.getRequestDispatcher("index.jsp").forward(request, response);
 }
 %>
   <title>RESOURCE MANAGEMENT SYSTEM</title>
 <head
 </head><body>
 <%
 Employee emp1 = (Employee)session.getAttribute("emp1");
 session.setAttribute("emp1",emp1);
 %>
 <tr>
        <td >select project name </td>
         <td>   <select name="pname">    
      <option value="${emp1.prjnamename}">${emp1.prjnamename}</option></select></td>
      </tr>
         <tr>
      <td >manager </td>
         <td>   <select name="manager">
      <option value="${emp1.manname}">${emp1.manname}</option></select></td>
            </tr>
         <tr>
               <td >team leader</td>
         <td>   <select name="teamleader">
      <option value="emp1.Tlname()">emp1.Tlname()</option></select></td>
            </tr>
    <tr>
                <td> <section class="container">
    <div>
    <select id="leftValues" size="5" multiple>
   <option value="${emp1.empname}">${emp1.empname}</option>                  
  </select>
  </div>
  </td>
  <td>
  <div>
    <input type="button" id="btnLeft" value="&lt;&lt;" />
    <input type="button" id="btnRight" value="&gt;&gt;" />
  </div>
 </td>
  <td>
 <div>
    <select name="nameofemps" id="rightValues" size="4" multiple="multiple">
        <option>
        </option>
    </select>
    <div>
        <input type="text" id="txtRight" />
    </div>
  </div>
 </section>
 </td>
   </tr>            
        </table><BR>
        </fieldset>
  </body>
   </html>

资源管理系统

您需要使用
request
属性迭代
forEach
循环

  <select id="leftValues" size="5" multiple>
  <c:forEach var='temp' items='${leave1}' >
    <option value="${temp.empname}">${temp.empname}</option>    
  </c:forEach>              
  </select>
相同的请求应
转发到jsp。请改用
RequestDispatcher


我假设您正试图打印请求中的
leave1
,如果您的观点不同,请在我的答案下方发表评论

我找到了问题的解决方案

          <tr>
         <td >select project name </td>
          td>   <select name="pname">
         <c:forEach var="temp" items="${emp1.prjname}">
         <option value="${temp}">${temp}</option>                  
       </c:forEach></select></td></tr>

选择项目名称
td>
${temp}

它的工作原理是

Sir我应该这样说,Sir我得到了它,我现在使用request.getRequestDispatcher(“/AssignProject.jsp”).forward(请求,响应);在这种情况下,现在它不是空的,但答案是相同的,使用我们的建议值和同一行中的数组,但我找到了自己的解决方案,我在这里给出了。。
          <tr>
         <td >select project name </td>
          td>   <select name="pname">
         <c:forEach var="temp" items="${emp1.prjname}">
         <option value="${temp}">${temp}</option>                  
       </c:forEach></select></td></tr>