HELP!!!求救!!求大神帮忙 现在项目进行到最后阶段,有个问题一直很困扰,是这样的,项目是做成绩管理的,一个学生考一次试,上传考试录音至服务器,一个学生一次考试有6个录音文件,每个文件在数据库里对应有上传时间和存储路径,在教师打分的时候,页面上播放学生的录音,每次播放一个学生一次考试的某个录音,播放完老师打分,如何实现呢?求高手帮忙!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不难做,楼主不会是新手吧一个老师--->多个学生学生--->多次考试一次考试--->对应一个学生的成绩一次考试--->6个录音 设计思路:可以设计出两张表:一张学生信息表,一张录音信息表,在录音信息表中可以存放录音信息以及其他信息,并在录音信息表中添加一个字段,这个字段就是学生id,这样教师在选择某个学生的时候可以拿到每个学生对应的ID查询出每个学生所对应的录音文件,查询出的录音文件在界面中遍历显示,然后教师就可以随便点击一个录音名称,这样就可以打开所选择的录音文件了。 现在问题是实现方面:下面是dao操作,根据班级得到每个学生的录音文件,这样获得的是一个学生所有的录音文件//查询录音 public List<StudentWave> findWaves(String class_name) { List<StudentWave> waves = new ArrayList<StudentWave>(); //根据班级得到学生 List<Student> students = this.hibernateTemplate.find("from Student s where s.student_class=?",class_name); //遍历学生集合 Iterator<Student> it = students.iterator(); while(it.hasNext()){ Student student = it.next(); String stu_id = student.getStudent_id(); //得到每个学生的录音文件 waves = this.hibernateTemplate.find("from StudentWave sw where sw.student_id=? order by sw.test_date",stu_id); System.out.println("##################################"); System.out.println("学生录音个数:"+waves.size()); for(StudentWave wave:waves){ System.out.println("学生id: "+wave.getStudent_id()+" 录音地址: "+wave.getPath()+" 测试时间:"+wave.getTest_date()); } } if(waves.size()!=0) return waves; return null; } action里操作:public String getWavPath(){ List<StudentWave> waves = this.teacherManager.findWaves(c_name); request.put("waves", waves); return SUCCESS; }页面:<div align="center"> <object classid="CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95" codebase="http://www.microsoft.com/ntserver/netshow/download/en/nsmp2inf.cab#Version=5,1,51,415" type="audio/mp3" width="282" height="45" id="wm_player" class="h2_player"> <!-- 录音地址 --> <param name="FileName" value="D:\test\双语学院\双语一班\101\2012-9-1-21-47\梁祝 - 小提琴.mp3" /> <param name="AutoStart" value="false" /> <param name="Loop" value="false" /> <param name="ShowControls" value="true" /> </object> </div> 现在就是这么设计的,每个录音文件对应每个学生id,问题是找到学生这次考试的6个录音后,如何在页面上实现呢,页面现在是这么设计,每个录音打分对应一个radio单选按钮,选择一个单选之后,页面的播放地址对应改变为数据库里录音表的path字段,头疼这呢,不知道该如何实现从页面的${waves}转到wav的字段path JFreechart生成柱状图,怎么更改柱子的颜色 js写的一个日历,属性的控制! MYECLIPSE6.5+TOMCAT6.0启动时出现严重问题,请高手告诉我怎么解决,谢谢 java如何开发视频会议(B/S)????请牛人指点 如题 想通过 前台界面 生成XML 的问题! 求助:MYSQL中distinct的使用方法 100分~~~bean怎么不起作用? 如何用servlet在页面上显示记录 如何连接数据库的问题 【菜鸟求教】关于javascript的问题 jQuery怎么取得当前列的id?
一个老师--->多个学生
学生--->多次考试
一次考试--->对应一个学生的成绩
一次考试--->6个录音
可以设计出两张表:一张学生信息表,一张录音信息表,在录音信息表中可以存放录音信息以及其他信息,并在录音信息表中添加一个字段,这个字段就是学生id,这样教师在选择某个学生的时候可以拿到每个学生对应的ID查询出每个学生所对应的录音文件,查询出的录音文件在界面中遍历显示,然后教师就可以随便点击一个录音名称,这样就可以打开所选择的录音文件了。
//查询录音
public List<StudentWave> findWaves(String class_name) {
List<StudentWave> waves = new ArrayList<StudentWave>();
//根据班级得到学生
List<Student> students = this.hibernateTemplate.find("from Student s where s.student_class=?",class_name);
//遍历学生集合
Iterator<Student> it = students.iterator();
while(it.hasNext()){
Student student = it.next();
String stu_id = student.getStudent_id();
//得到每个学生的录音文件
waves = this.hibernateTemplate.find("from StudentWave sw where sw.student_id=? order by sw.test_date",stu_id);
System.out.println("##################################");
System.out.println("学生录音个数:"+waves.size());
for(StudentWave wave:waves){
System.out.println("学生id: "+wave.getStudent_id()+" 录音地址: "+wave.getPath()+" 测试时间:"+wave.getTest_date());
}
}
if(waves.size()!=0)
return waves;
return null;
}
public String getWavPath(){
List<StudentWave> waves = this.teacherManager.findWaves(c_name);
request.put("waves", waves);
return SUCCESS;
}
页面:
<div align="center">
<object classid="CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95"
codebase="http://www.microsoft.com/ntserver/netshow/download/en/nsmp2inf.cab#Version=5,1,51,415"
type="audio/mp3" width="282" height="45" id="wm_player"
class="h2_player">
<!-- 录音地址 -->
<param name="FileName"
value="D:\test\双语学院\双语一班\101\2012-9-1-21-47\梁祝 - 小提琴.mp3" /> <param name="AutoStart" value="false" />
<param name="Loop" value="false" />
<param name="ShowControls" value="true" />
</object>
</div>