Java 在jsp页面上检索下拉选项的数组值时出现问题
我必须从不同的表中获取值,并且值不止一个,所有值都在不同的下拉框中,我必须在框的基础上显示,我已经这样做了,我不确定我的方法是否正确,但我得到了值,但最后当我尝试选择值时会发生什么,就像这样[saurabh,prakash,karan]在一行中使用数组符号,但我需要saurabh,在下一行中使用prakash,所以这是我的问题,这里是我调用empDetail方法的servlet类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
@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="<<" />
<input type="button" id="btnRight" value=">>" />
</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>