【发布时间】:2017-08-19 09:24:04
【问题描述】:
我试图将用户输入保存在一个数组中,然后将其传递给 servlet。我不知道该怎么做。我已经搜索并尝试了不同的代码,但仍然没有运气。我不知道函数是否错误或语法错误,但我已经尝试使用我能想到的所有其他方法,但仍然卡住。
<body>
<div id="display"></div>
<div ng-controller="DemoCtrl" ng-cloak="" class="md-inline-form" ng-app="MyApp" layout="column" layout-sm="row" style="color: black" layout-align="center center" layout-align-sm="start start" layout-fill="">
<md-content class="md-whiteframe-10dp" flex-sm="">
<md-toolbar flex="" id="materialToolbar">
<div class="md-toolbar-tools">
<span flex=""></span>
<span class="md-headline" align="center">Registration Form</span>
<span flex=""></span>
</div>
</md-toolbar>
<div layout-padding="">
<div></div>
<%
%>
<form action="" >
<input type="hidden" name="action" />
<div layout="row" layout-sm="column">
<md-input-container flex-gt-sm="">
<label>LRN:</label>
<input name="a" id="lrn" required="" type="number" placeholder="Your LRN" style="width: 160px">
</md-input-container>
<md-input-container flex-gt-sm="">
<label>Student Number:</label>
<input name="a" id="snum" required="" type="number" placeholder="Your Student Number">
</md-input-container>
</div>
<div layout="row" layout-sm="column">
<md-input-container flex-gt-sm="">
<label>First Name</label>
<input name="a" id="fn" required="" type="text" placeholder="Your First Name">
</md-input-container>
<md-input-container flex-gt-sm="">
<label>Middle Name:</label>
<input name="a" id="mn" required="" type="text" placeholder="Your Middle Name">
</md-input-container>
<md-input-container flex-gt-sm="">
<label>Last Name:</label>
<input name="a" id="ln" required="" type="text" placeholder="Your Last Name">
</md-input-container>
</div>
<div layout="row" layout-sm="column">
<p style="font-size: 12px; margin-left: 3px; margin-top: 18px;">Gender: </p>
<input type="hidden" name="a" value="{{user.gender}}" />
<md-radio-group style="margin: 12px 0 19px;" ng-model="user.gender" required="">
<md-radio-button value="Male" class="md-primary">Male</md-radio-button>
<md-radio-button value="Female" ">Female</md-radio-button>
</md-radio-group>
</div>
<div layout="row" layout-sm="column">
<md-input-container flex-gt-sm="">
<label>Parent</label>
<input required="" type="text" id="p" name="a" placeholder="Your Parent" />
</md-input-container>
</div>
<div layout="row" layout-sm="column">
<!--<md-button class="md-raised md-primary" style="width:100%; margin: 5px 5px;" type="submit" >Submit</md-button><br><br>
<md-button class="md-raised md-primary" style="width:100%; margin: 5px 5px;" type="reset" >Reset</md-button><br> -->
<input type="submit" value="Save" onclick="insert();" />
<input type="submit" value="Submit" onclick="form.action='register';" />
</div>
</form>
</div>
</md-content>
</div>
</body>
这是我的函数,假设我在数组上按保存时会存储输入。但什么也没发生..
var LRN = new Array();
var SNUM =new Array();
var FN =new Array();
var MN =new Array();
var LN =new Array();
var G =new Array();
var P =new Array();
var lrnInput = document.getElementById("lrn");
var snumInput = document.getElementById("snum");
var fnInput = document.getElementById("fn");
var mnInput = document.getElementById("mn");
var lnInput = document.getElementById("ln");
var gInput = document.getElementById("g");
var pInput = document.getElementById("p");
function insert ( ) {
var lrnInput = document.getElementById("lrn").value();
var snumInput = document.getElementById("snum").value();
var fnInput = document.getElementById("fn".value());
var mnInput = document.getElementById("mn").value();
var lnInput = document.getElementById("ln").value();
var gInput = document.getElementById("g").value();
var pInput = document.getElementById("p").value();
LRN[LRN.length]=lrnInput
SNUM[SNUM.length]=snumInput
FN[FN.length]=fnInput
MN[MN.length]=mnInput
LN[LN.length]=lnInput
G[G.length]=gInput
P[P.length]=pInput;
}
每当我点击保存按钮时,什么都没有发生......我只是尝试调用 lrn var 但我仍然不知道该怎么做
这是我的 Servlet 代码:
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String[] lrn = request.getParameterValues("lrn");
List<String> list = Arrays.asList(lrn);
try {
out.println("<html>");
out.println("<head>");
out.println("<title>INFORMATION</title>");
out.println("<link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css'>");
out.println("<link rel='stylesheet' href='css/style1.css'>");
out.println("</head>");
out.println("<body>");
out.println("<section>");
out.println("<h1>MALE</h1>");
out.println("<div class='tbl-header'>");
out.println("<table cellpadding='0' cellspacing='0' border='0'>");
out.println("<thead>");
out.println("<tr>");
out.println("<th>LRN</th>");
out.println("<th>Student Number</th>");
out.println("<th>First Name</th>");
out.println("<th>Middle Name</th>");
out.println("<th>Last Name</th>");
out.println("<th>Gender</th>");
out.println("<th>Parent</th>");
out.println("</tr>");
out.println("</thead>");
out.println("</table>");
out.println("<div class='tbl-content'>");
out.println("<table cellpadding='0' cellspacing='0'border='0'>");
out.println("<tbody>");
for (int i = 0; i<list.size(); i++) {
if (i>0 && i%7==0) {
out.println("</tr><tr>");
}
out.println("<td>" + list.get(i) + "</td>");
}
/*
out.println("<td>"+lrn+"</td>");
out.println("<td>"+snum+"</td>");
out.println("<td>"+fn+"</td>");
out.println("<td>"+mn+"</td>");
out.println("<td>"+ln+"</td>");
out.println("<td>"+gender+"</td>");
out.println("<td>"+parent+"</td>");*/
out.println("</tbody>");
out.println("</table>");
out.println("</div>");
out.println("</section>");
out.println("<section>");
out.println("<h1>FEMALE</h1>");
out.println("<div class='tbl-header'>");
out.println("<table cellpadding='0' cellspacing='0' border='0'>");
out.println("<thead>");
out.println("<tr>");
out.println("<th>LRN</th>");
out.println("<th>Student Number</th>");
out.println("<th>First Name</th>");
out.println("<th>Middle Name</th>");
out.println("<th>Last Name</th>");
out.println("<th>Parent</th>");
out.println("</tr>");
out.println("</thead>");
out.println("</table>");
out.println("<div class='tbl-content'>");
out.println("<table cellpadding='0' cellspacing='0'border='0'>");
out.println("<tbody>");
out.println("</tbody>");
out.println("</table>");
out.println("</div>");
out.println("</section>");
out.println("<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>");
out.println("<script src='js/index1.js'></script>");
out.println("</body>");
out.println("</html>");
} finally {
out.close();
}
【问题讨论】:
-
提交 html 表单时不能发送 javascript 数组。相反,您需要将它们存储在隐藏字段中,同时以逗号分隔的字符串调用 insert() 函数,然后在 Servlet 中拆分。
-
@GauravSrivastav 我该怎么做?
-
只是在回答中分享代码。
标签: java html arrays jsp servlets