当前位置: 首页 > 知识库问答 >
问题:

使用select和option标记在jsp中插入数据

翟丰茂
2023-03-14

在我的应用程序中,我从表类读取数据,并在表测试中插入id值。我通常在jsp中使用table和插入链接,但这次我需要通过选项标签和插入按钮显示我的数据插入按钮我有这个错误(抛出异常[java.lang.NumberFormatExc0019:对于输入字符串:""]与根本原因java.lang.NumberFormatExc0019:对于输入字符串:")

我在使用表和链接进行插入时没有问题,所以servlet和数据库类工作得很好。我认为问题可能是我如何使用选项标签

jsp文件

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
        <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<table>
<c:forEach var="tempstudent" items="${select}">
<c:url var="insert" value="add_course">
		<c:param name="command" value="insert"/>
				<c:param name="courseid" value="${tempstudent.id}"/>
			</c:url> 
<tr>
<td>${tempstudent.id}</td>
<td>${tempstudent.name}</td>

<td> 
 	<a href="${insert}" 
 						onclick="if (!(confirm('Are you sure you want to insert this student?'))) return false"> 
						
						insert</a>	 
 						</td>	
</tr>

</c:forEach>




</table>
<form action="add_course" method="GET">
			<input type="hidden" name="command" value="insert" />
<input type="hidden" name="courseid" value="${tempstudent.id}"/>

<select>

<c:forEach var="tempstudent" items="${select}">
<option  value="courseid">${tempstudent.id},<td>${tempstudent.name}</td>
</option>

</c:forEach>

		


</select>
<td><label></label></td>
						<td><input type="submit" value="Save" class="save"/></td>
</form>


</body>
</html>

servlet文件

  

package com.web;

import java.io.IOException;
import java.util.List;

import javax.annotation.Resource;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

/**
 * Servlet implementation class add_course
 */
@WebServlet("/add_course")
public class add_course extends HttpServlet {
	private dbutil dbutil;
	@Resource(name="jdbc/web_student_tracker")
	private DataSource dataSource;
	@Override
	public void init() throws ServletException {
		//dbutil= new dbutil(dataSource);
		super.init();
		try {
			dbutil=new dbutil(dataSource);
		}
		catch(Exception exc) {
		throw new ServletException(exc);
		}
	}
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//		List<student> student;
//		try {
//			student = dbutil.getcourse();
//			request.setAttribute("select",student);
//			RequestDispatcher dispatcher = request.getRequestDispatcher("/course.jsp");
//		dispatcher.forward(request,response);
//		} catch (Exception e) {			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
		try {
			String thecommand=request.getParameter("command");
			if(thecommand==null) {
				thecommand="LIST";
			}
			switch(thecommand) {
			case"LIST":
				listcourse(request,response);
				break;
			case"insert":
				insertcourse(request,response);
				break;
			}
		}
		catch(Exception exc) {
			throw new ServletException(exc);
		}
		
	
	}
	private void insertcourse(HttpServletRequest request, HttpServletResponse response) throws Exception {

		int courseid = Integer.parseInt(request.getParameter("courseid"));
		  student thestudent=new student(courseid);
		  dbutil.insetcourse(thestudent);
		  request.setAttribute("message", "Records loaded successfully");
		  RequestDispatcher dispatcher = request.getRequestDispatcher("/course.jsp");
		  dispatcher.forward(request,response);
//		  int courseid = Integer.parseInt(request.getParameter("courseid"));
//			student thestudent=new student(courseid);
//			dbutil.insetcourse(thestudent);
//			insertcourse(request,response);
		 

	}
	private void listcourse(HttpServletRequest request, HttpServletResponse response) throws Exception {
		List<course> student=dbutil.getcourse();
	request.setAttribute("select",student);
	RequestDispatcher dispatcher = request.getRequestDispatcher("/course.jsp");
	dispatcher.forward(request,response);
	}

}

//数据库类

public List <course> getcourse() throws Exception{
	List<course> course=new ArrayList<>();
	Connection myConn = null;
	Statement myStmt = null;
	ResultSet myRs = null;
	try {
		
		myConn=dataSource.getConnection();
		//String sql="select id from class";
		String sql ="select id,name from class";
		myStmt=myConn.createStatement();
		myRs=myStmt.executeQuery(sql);
		while (myRs.next()) {
	int myid = myRs.getInt("id");
	String myname =myRs.getString("name");
	course tempstudent = new course(myid,myname);

				course.add(tempstudent);
	}
	return course;
}
	finally {
		// close JDBC objects
		close(myConn, myStmt, myRs);
	}		
}

public void insetcourse(student thestudent)throws SQLException  {
	Connection myConn = null;
	PreparedStatement myStmt=null;
	/////////
	try {
		myConn = dataSource.getConnection();
		String sql="insert into test"+"(id)"+"value(?)";
		myStmt=myConn.prepareStatement(sql);

		myStmt.setInt(1,thestudent.getId());
		
		myStmt.execute();
		
	}
	finally {
		close(myConn,myStmt,null);
	}
}

共有1个答案

姜建德
2023-03-14

你的代码

<!--giving name attribute to access it in servlet-->
<select name="select">
  <c:forEach var="tempstudent" items="${select}">
  <!--passing id--> 
    <option value="${tempstudent.id}">${tempstudent.id},
      <td>${tempstudent.name}</td>
    </option>
  </c:forEach>
</select>

在servlet访问中

int courseid = Integer.parseInt(request.getParameter("select"));

 类似资料:
  • 在我的Struts 1应用程序中的jsp中,我试图使用c: set标签从显示表中的列表中设置变量。 表中的每一行都有一个值(100或200),用于区分是哪个用户添加了条目。我只想为某个用户显示编辑/删除(100)。 我正在尝试设置该值并将其与100进行比较,以确定哪些行应具有编辑/删除权限。 我遇到的问题是rowUser没有从我的列表中分配值。 我知道列表中有值,因为表正在显示,但它们显示的所有行

  • 我有一个jsp页面中的表单,它允许用户存储产品的一些值,如名称、类别 下面是我的简单表格: 现在我主要关注的是类别元素。我想将db中的类别值显示为选择标签中的选项。我在request.set属性(“类别”,列表)中使用了列表,其中列表包含db中的类别名称值。 但我的输出显示如下: 我已经创建了bean类,并使用list从db中获取值。 简而言之,我需要知道以下拉方式在select标记中存储选项内数

  • 但是得到 jspException(jspservletwrapper.java:568)org.apache.jasper.servlet.jspservletwrapper.java:455)org.apache.jasper.server.jspserver.servicejjspfile(jspservlet.java:390)org.apache.jasper.server.jspser

  • 我正在使用querySelector获得一个div元素,并且能够更改按钮名称,但是我还想插入一个span标记。好心的帮助。 我想把“标准”包装在span标记中。请帮帮忙。

  • 问题内容: 我有一个查询,使用选择插入: 是否可以仅为插入内容选择“名称,位置”,并将gid设置为查询中的其他内容? 问题答案: 是的,绝对可以,但是请检查您的语法。 您可以放置与其位置相同类型的常量,而不只是1。而且,我只是弥补了价值。

  • 问题内容: 我的问题是与HTML和CSS有关。我有一个要显示在列表中的层次结构类型结构。层次结构包含国家,州和城市(深度为三个层次)。 我想在选择列表中显示该列表,每个项目类型(国家,州,城市)必须是可选的。这些项目应缩进为: 问题在于缩进。我正在尝试使用margin-left或padding- left缩进标签,这些标签在FireFox中显示正确,但在IE7中却不正确。这是生成的选择列表的示例: