avaweb实现打分功能
我在老师留的题目中看到了一个实现可以打分的功能
我对打分这个功能进行联想,我们平时见到的打分一般都是每个学生后面跟着一个
框让你可以实现录入分数,然后点一下提交就可以将多个学生的成绩一起提交,
但是我们以往做的提交一般都是提交不同的东西,比如分别提交姓名,性别和id
但是打分功能是提交的全都是分数,属于一种类型,这时改如何提交,我经过自己的
尝试,没有借助网上的方法,我自己设计出了一种打分的方式,其构造如下:
<%
Object message = request.getAttribute("message");
Object list = request.getAttribute("list");
if(message!=null && !"".equals(message)){
%>
<script type="text/javascript">
alert("<%=request.getAttribute("message")%>");
</script>
<%} %>
使用这个可以得到servlet层传来的list,用于将学生的名字列出
<form action="servlet?method=luruscore" method="post">
<table align="center">
<c:forEach items="${list}" var="item">
<tr><td>${item.name}</td><td><input type="text" name="sco${item.id}"></td></tr>
</c:forEach>
<tr><td><input type="submit" value="提交"></td></tr>
<tr></tr>
</table>
</form>
然后用这个方法来实现,我们可以分析一下,首先将我们可以联想一般的Java程序,
都是用 i 作为标志,对于前台界面,在表单中嵌入Java的循环我尝试的时候没有成功
当时我也在想用 i 作为标志,但是没有成功,于是就联想可不可以用用学生的属性作为标志
然后学生的学号时唯一的,就可以用学生的学号作为标志,这样每个分数在前台都有一个唯一的名称
然后在servlet层根据前台你给他起的名字就可以得到这个分数,你在Dao层里面设计一个方法,
这个方法有两个参数,一个时Id,一个是前台得到的score,再根据list的size()用循环多次调用这个
Dao层的方法实现分数的录入