批量录入学生成绩时前台怎么命名变量?后台怎么处理变量? 情况是这样的,系统需要让教师按班录入学生成绩,如果录入一个学生提交一次显然不现实,我想做成图示这样(无法传图,让输入TAG,不懂怎么输什么):批量录入,在这种情况下,前台如何给这几个台输入域命名?后台如何让这些输入域对应到相应的学生上? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主截止到2008-06-20 16:32:13的汇总数据:注册日期:2008-4-13上次登录:2008-6-20发帖数:4 发帖分:110 结贴数:0 结贴分:0 结贴率:0.00 % 结分率:0.00 % 如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html 我们学校的一个系统 是把他变成excel形式, 就是这位兄弟说的。比如有一个班,有学生30人,我要在一个页面内一次性录入30人的成绩,一次性提交。那么,在客户端的页面需要30个独立的text输入域,为了方便后台处理,应该怎么样给这30个text field命名?数据提交给后台后,在java里怎么把这些不同名字的text field跟相应的学生联系起来?假设学生ID为:a1,b1,c2...,text field分别命名为a1,b1,c2...,跟学生ID同名,那么在后台可能通过变量的名字对应相应的学生。JAVA里如何取得变量的名字?这样的处理方法是否恰当? 假设学生ID为:a1,b1,c2...,text field分别命名为a1,b1,c2...,跟学生ID同名,那么在后台可能通过变量的名字对应相应的学生。JAVA里如何取得变量的名字?这样的处理方法是否恰当?用这个方法还有一个很严重的问题,我用的MVC框架是struts2,一般情况下,页面提交数据时struts2直接保存在action中带setter的同名变量上,各个班的人数不同,我如何定义action中接收成绩的变量? 你得写个方法。或者是用个EXCEL,把要输入的数据写到里面,然后调用。 这样吧,你把学生的一个list传到jsp页面,让相应的field的名字加上学生的一些内容,这样就可以与学生对应了 现在问题是学生数量不等,struts2的action里如何定义变量?难不成又用回request.getParameterString()方法? 我只能告诉你原理吧。用循环把学生成绩输入text显示出来,命名为比如从1到30,可写为score[1]…………这样,然后就写入数据提交就好了啊~~ jsp传到客户端后就变为纯html文档了,请问在纯html文档中怎么把不同的text域的值变成score[1]......然后再上传到服务器? jsp传到客户端后就变为纯html文档了,请问在纯html文档中怎么把不同的text域的值变成score[1]......然后再上传到服务器? jsp传到客户端后就变为纯html文档了,请问在纯html文档中怎么把不同的text域的值变成score[1]......然后再上传到服务器? 把 text 的名字都命名为相同的啊,就像下面这样。<c:forEach items="${stus}" var="stu"> $stu.name <input type="text" name="score"> <input type="hidden" name="id" value="$stu.id"><br/></c:forEach>后台可以使用:String[] id = request.getParameterValues("id");String[] score = request.getParameterValues("score");得到这些数组id[0] 和 score[0] 都是一一对应的 这个方法也可以的!最好LZ查一下struts的批量上传。就是不定数目的上传!情况可你一样 不好意思,楼上各位,昨晚电脑出了点问题,一下子提交了好多次,后来想声明一下,系统却老说怀疑我刷屏,不让发贴了。这个问题我暂时解决了,为什么说是暂时呢?因为我没用struts2的参数自动注入,而是用回了传统的request来提取参数,方法就是根据班级学生的ID查找request中是否存在相应的变量Key,如有,则提取出来,没有就跳过。(在前台,我直接使用学生ID作为text的名字)具体代码如下: List<Stdt> stdts= stdtSvc.getTmpTeamStdts(tmpTeamID);//获得班级的学生列表 HttpServletRequest request= ServletActionContext.getRequest();//获得request对象 Map<String,String> scores=request.getParameterMap();//获得上传的参数列表 String stdtID; Score score; double dscore; Stdt stdt; for (int i=0;i<stdts.size();i++) {//遍历班级的学生 stdt= stdts.get(i); stdtID=stdt.getStdtid(); if (scores.containsKey(stdtID)) {//查询是否有该学生ID为KEY的上传参数,有则执行更新操作 dscore=Float.valueOf(request.getParameter(stdtID));//注释(1) score= (Score) this.getHibernateTemplate().get(Score.class,new ScorePK(tmpteam.getNamedopencrs().getNamedopencrsid(),termID,stdtID)); score.setScore(new BigDecimal(dscore)); try { this.getHibernateTemplate().update(score); } catch (HibernateException e) { result=false; } } }写这段代码时一直有一个问题搞不清楚,就是标着“注释(1)”的那一行,按理说,类型为MAP的变量scores是上传的参数名字/参数值的列表,MAP的get(key)方法应该返回参数值,但我把request.getgetParameter(stdtID)换成scores.get(stdtID),运行时老报错java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String,我搞不明白哪来的“[Ljava.lang.String”类型?我写了一段非b/s代码测试了一下MAP的get(key)运行是正常的,不懂为什么在B/S里会出这样的错。 Java vs C# java+jsp 一个抽奖程序问题 servlet 求助。。。关于JSP聊天室DISPLAY分帧的问题 No action config found for the specified url 这是什么问题啊 虚拟主机上奇怪的Filter问题 点击连接实现刷新 如何从一个html文件中提取所需要的信息? 在eclipse中开发jsp程序的中文问题!! 如何用一个java程序对一个已有的css文件进行修改? 关闭一个页面同时关闭另一个页面 TOMCAT服务启动时产生的错误是什么原因?如何解决?
楼主截止到2008-06-20 16:32:13的汇总数据:
注册日期:2008-4-13
上次登录:2008-6-20
发帖数:4 发帖分:110
结贴数:0 结贴分:0
结贴率:0.00 % 结分率:0.00 %
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
就是这位兄弟说的。比如有一个班,有学生30人,我要在一个页面内一次性录入30人的成绩,一次性提交。那么,在客户端的页面需要30个独立的text输入域,为了方便后台处理,应该怎么样给这30个text field命名?数据提交给后台后,在java里怎么把这些不同名字的text field跟相应的学生联系起来?假设学生ID为:a1,b1,c2...,text field分别命名为a1,b1,c2...,跟学生ID同名,那么在后台可能通过变量的名字对应相应的学生。JAVA里如何取得变量的名字?这样的处理方法是否恰当?
现在问题是学生数量不等,struts2的action里如何定义变量?难不成又用回request.getParameterString()方法?
用循环把学生成绩输入text显示出来,命名为比如从1到30,可写为score[1]…………这样,然后就写入数据提交就好了啊~~
jsp传到客户端后就变为纯html文档了,请问在纯html文档中怎么把不同的text域的值变成score[1]......然后再上传到服务器?
jsp传到客户端后就变为纯html文档了,请问在纯html文档中怎么把不同的text域的值变成score[1]......然后再上传到服务器?
jsp传到客户端后就变为纯html文档了,请问在纯html文档中怎么把不同的text域的值变成score[1]......然后再上传到服务器?
$stu.name <input type="text" name="score"> <input type="hidden" name="id" value="$stu.id"><br/>
</c:forEach>后台可以使用:String[] id = request.getParameterValues("id");
String[] score = request.getParameterValues("score");得到这些数组id[0] 和 score[0] 都是一一对应的
(在前台,我直接使用学生ID作为text的名字)具体代码如下:
List<Stdt> stdts= stdtSvc.getTmpTeamStdts(tmpTeamID);//获得班级的学生列表
HttpServletRequest request= ServletActionContext.getRequest();//获得request对象
Map<String,String> scores=request.getParameterMap();//获得上传的参数列表
String stdtID;
Score score;
double dscore;
Stdt stdt;
for (int i=0;i<stdts.size();i++) {//遍历班级的学生
stdt= stdts.get(i);
stdtID=stdt.getStdtid();
if (scores.containsKey(stdtID)) {//查询是否有该学生ID为KEY的上传参数,有则执行更新操作
dscore=Float.valueOf(request.getParameter(stdtID));//注释(1)
score= (Score) this.getHibernateTemplate().get(Score.class,new ScorePK(tmpteam.getNamedopencrs().getNamedopencrsid(),termID,stdtID));
score.setScore(new BigDecimal(dscore));
try {
this.getHibernateTemplate().update(score);
} catch (HibernateException e) {
result=false;
}
}
}
写这段代码时一直有一个问题搞不清楚,就是标着“注释(1)”的那一行,按理说,类型为MAP的变量scores是上传的参数名字/参数值的列表,MAP的get(key)方法应该返回参数值,但我把request.getgetParameter(stdtID)换成scores.get(stdtID),运行时老报错java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String,我搞不明白哪来的“[Ljava.lang.String”类型?我写了一段非b/s代码测试了一下MAP的get(key)运行是正常的,不懂为什么在B/S里会出这样的错。