checkbox取值

cctv_mtv 2007-12-30 09:50:53
功能:点选“邀请”会从数据库中读取员工信息,多选取值
问题:后台取不到值,request.getParameterValues("tradeType");方法取出数组长度为1,值为no

数据库:Northwind
表:employees

代码如下:

Action代码
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.home.employee.servlet.struts;

import java.util.Vector;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class InviteEmployeeAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
System.out.println("--InviteEmployeeAction--");
EmployeeForm employeeForm = (EmployeeForm) form;// TODO Auto-generated method stub

String[] tradeType = request.getParameterValues("tradeType");

if(tradeType != null && tradeType.length>0){
for(int i=0; i<tradeType.length; i++){
System.out.println("Type ="+tradeType[i]);
}
}else{
System.out.println("TradeType is Null");
}
return mapping.findForward("success");
}
}

Servlet代码
package com.home.employee.servlet;

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

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.home.employee.EmployeeImpl;
import com.home.employee.servlet.struts.EmployeeForm;

public class InviteEmployee extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

request.setCharacterEncoding("GB2312");
response.setContentType("text/xml; charset-GB2312");
response.setHeader("Cache-Control","no-cache");
PrintWriter pw = response.getWriter();

List employeeList = new ArrayList();
EmployeeImpl emp = new EmployeeImpl();

employeeList = emp.getEmployeeInfo();

try {
pw.println("<response>");
for(int i=0; i<employeeList.size(); i++){
pw.println("<empID>"+((EmployeeForm)employeeList.get(i)).getEmployeeID()+"</empID>");
pw.println("<empName>"+((EmployeeForm)employeeList.get(i)).getLastName()+"</empName>");
}
pw.println("</response>");
} catch (Exception e) {
e.printStackTrace();
}
pw.close();
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response);
}

}

JSP页面
<%@ page language="java" contentType="text/html; charset=GB2312"%>
<%@ page import="java.util.Date"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>Invite Employee</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript" language="javascript">
var xmlHttp = false;
function createXMLHttpRequest(){
if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}else if(window.ActiveXObject){
try{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){}
}
}
}

function sendRequest(url){
createXMLHttpRequest();
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange = processResponse;
xmlHttp.send(null);
}

function processResponse(){
if(xmlHttp.readyState == 4){
if(xmlHttp.Status == 200){
var htmlStr = "";
var empList = xmlHttp.responseXML.getElementsByTagName("empID");
var empName = xmlHttp.responseXML.getElementsByTagName("empName");
for(var i=0; i<empList.length; i++){
htmlStr += "<tr>"+"<td><input type='checkbox' name='member' value='"+empList[i].firstChild.data+"'></td>"
+"<td>"+empList[i].firstChild.data+"</td>"
+"<td>"+empName[i].firstChild.data+"</td></tr>";
}
document.all['invite'].innerHTML = "<table border='1'>"+htmlStr+"</table>";
}
}
}

function check(){
sendRequest('<%=path%>/inviteEmployee');
}

function clearDiv(){
document.all['invite'].innerHTML = "";
}
</script>
</head>

<body>
<h1>GET EMPLOYEES INFO</h1>
监测时间:<%=new Date().toLocaleString()%>
<form action="<%=path %>/inviteEmployee.do" method="post" name="empForm">
<table>
<tr>
<td>交易方式</td>
<td><input type="radio" name="tradeType" vlaue="0" checked="checked" onclick="clearDiv()" />公开 
<input type="radio" name="tradeType" vlaue="1" onclick="check()" />邀请
</td>
</tr>
<tr><td colspan="2">
<DIV id="invite"></DIV>
</td></tr>
<tr><td colspan="2"><input type="submit" name="sub" value="下一步" /></td></tr>
</table>
</form>
</body>
</html>
...全文
642 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cctv_mtv 2008-01-01
  • 打赏
  • 举报
回复
更正一下,数组长度都是1,值总是为on
cctv_mtv 2008-01-01
  • 打赏
  • 举报
回复
页面上有两个radio,“公开”和“邀请”,默认为公开当点击“邀请”后会执行InviteEmployee(Servlet)代码,作用是从数据库读取会员数据返回给页面,页面会局部显示出一个带有checkbox的table表格,如:checkbox EmployeeID LastName.然后可以将所选会员信息插入到数据库

问题:当多选时,后台Action拿不到所选的值,String[] tradeType = request.getParameterValues("tradeType"); 无论选几个,数组长度都是1,值总是为no

请大家指点!谢谢
tantaiyizu 2007-12-31
  • 打赏
  • 举报
回复
你想做什么?
yousite1 2007-12-31
  • 打赏
  • 举报
回复
代碼太多懶得看,簡單一點說一下

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧