فهرست منبع

修复一些问题

ting.yin 4 سال پیش
والد
کامیت
18aa870024

+ 9 - 10
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/model/MarkLibrary.java

@@ -1,6 +1,5 @@
 package cn.com.qmth.stmms.biz.mark.model;
 
-import cn.com.qmth.stmms.biz.exam.model.Marker;
 import cn.com.qmth.stmms.biz.utils.ScoreItem;
 import cn.com.qmth.stmms.common.enums.LibraryStatus;
 import org.apache.commons.lang.StringUtils;
@@ -125,7 +124,7 @@ public class MarkLibrary implements Serializable {
     private String headerScoreList;
 
     @Transient
-    private Marker marker;
+    private String markerLoginName;
 
     public Integer getId() {
         return id;
@@ -246,14 +245,6 @@ public class MarkLibrary implements Serializable {
         this.groupNumber = groupNumber;
     }
 
-    public Marker getMarker() {
-        return marker;
-    }
-
-    public void setMarker(Marker marker) {
-        this.marker = marker;
-    }
-
     public Integer getHeaderId() {
         return headerId;
     }
@@ -302,4 +293,12 @@ public class MarkLibrary implements Serializable {
         this.markerSpent = markerSpent;
     }
 
+    public String getMarkerLoginName() {
+        return markerLoginName;
+    }
+
+    public void setMarkerLoginName(String markerLoginName) {
+        this.markerLoginName = markerLoginName;
+    }
+
 }

+ 16 - 5
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/DataSyncController.java

@@ -13,8 +13,10 @@ import cn.com.qmth.stmms.common.enums.LockType;
 import cn.com.qmth.stmms.common.enums.LogType;
 import cn.com.qmth.stmms.common.enums.Role;
 import cn.com.qmth.stmms.common.utils.ExportExcel;
+import cn.com.qmth.stmms.common.utils.RequestUtils;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,6 +32,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -91,9 +94,10 @@ public class DataSyncController extends BaseExamController {
     @Value("${qmth.examcloud.pageSize}")
     private Integer pageSize;
 
+    public static final String ERROR_CODE = "EX-101444";
+
     @RequestMapping()
     public ModelAndView index(HttpServletRequest request, @RequestParam Integer examId) {
-        examId = getSessionExamId(request);
         DataSync dataSync = dataSyncService.findByExamId(examId);
         if (dataSync == null) {
             dataSync = new DataSync();
@@ -134,14 +138,14 @@ public class DataSyncController extends BaseExamController {
     @Logging(menu = "导出多媒体试卷结构", type = LogType.EXPORT)
     @RequestMapping(value = "/export", method = RequestMethod.GET)
     @RoleRequire(Role.SCHOOL_ADMIN)
-    public ModelAndView exportFile(HttpServletRequest request, HttpServletResponse response,
-            RedirectAttributes redirectAttributes) {
-        int examId = getSessionExamId(request);
+    public ModelAndView exportFile(@RequestParam Integer examId, HttpServletRequest request,
+            HttpServletResponse response, RedirectAttributes redirectAttributes) {
         DataSync sync = dataSyncService.findByExamId(examId);
         try {
             List<SubjectiveQuestionDTO> list = getPaperStruct(sync);
             new ExportExcel("主观题数据", SubjectiveQuestionDTO.class, 2).setDataList(list).write(response, "主观题数据.xlsx")
                     .dispose();
+            RequestUtils.setLog(request, "");
             return null;
         } catch (Exception e) {
             log.error("export sync subject:", e);
@@ -150,7 +154,7 @@ public class DataSyncController extends BaseExamController {
         return new ModelAndView("redirect:/admin/exam/data/sync?examId=" + examId);
     }
 
-    private List<SubjectiveQuestionDTO> getPaperStruct(DataSync sync) {
+    private List<SubjectiveQuestionDTO> getPaperStruct(DataSync sync) throws Exception {
         List<SubjectiveQuestionDTO> list = new ArrayList<SubjectiveQuestionDTO>();
 
         HttpUtil subjectHttp = new HttpUtil(sync.getSubjectUrl(), sync.getSecretKey(), sync.getAppId(),
@@ -159,6 +163,13 @@ public class DataSyncController extends BaseExamController {
         datas.accumulate("examId", sync.getCloudExamId());
         String subjectResult = subjectHttp.httpAction(null, datas.toString());
         JSONObject subjectJson = JSONObject.fromObject(subjectResult);
+
+        // 考试返回错误,无法创建阅卷
+        if (ERROR_CODE.equals(subjectJson.getString("code"))) {
+            log.error("data sync exception for cloud examId=" + sync.getCloudExamId(), subjectJson.getString("desc"));
+            throw new Exception(subjectJson.getString("desc"));
+        }
+
         JSONArray subjectArray = subjectJson.getJSONArray("paperStructList");
         for (int i = 0; i < subjectArray.size(); i++) {
             JSONObject subject = subjectArray.getJSONObject(i);

+ 6 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/LibraryController.java

@@ -9,6 +9,7 @@ import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
 import cn.com.qmth.stmms.biz.mark.query.MarkLibrarySearchQuery;
 import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
 import cn.com.qmth.stmms.biz.mark.service.MarkService;
+import cn.com.qmth.stmms.biz.user.service.UserService;
 import cn.com.qmth.stmms.common.annotation.Logging;
 import cn.com.qmth.stmms.common.annotation.RoleRequire;
 import cn.com.qmth.stmms.common.domain.WebUser;
@@ -65,6 +66,9 @@ public class LibraryController extends BaseExamController {
     @Autowired
     private FileService fileService;
 
+    @Autowired
+    private UserService userService;
+
     @Logging(menu = "评卷任务查询", type = LogType.QUERY)
     @RequestMapping
     public String list(Model model, HttpServletRequest request, MarkLibrarySearchQuery query,
@@ -95,7 +99,8 @@ public class LibraryController extends BaseExamController {
             query = libraryService.findByQuery(query);
             for (MarkLibrary library : query.getResult()) {
                 if (library.getMarkerId() != null) {
-                    library.setMarker(markerService.findById(library.getMarkerId()));
+                    Marker marker = markerService.findById(library.getMarkerId());
+                    library.setMarkerLoginName(userService.findById(marker.getUserId()).getLoginName());
                 }
             }
             for (MarkGroup group : groupList) {

+ 3 - 3
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/MarkerController.java

@@ -393,8 +393,8 @@ public class MarkerController extends BaseExamController {
                 if (markGroup == null) {
                     markGroup = groupService.findOne(examId, marker.getSubjectCode(), marker.getGroupNumber());
                     if (markGroup == null) {
-                        failureMsg.append("<br/>评卷员 " + marker.getLoginName() + "," + marker.getSubjectCode() + ","
-                                + marker.getGroupName() + MarkerExcelError.GROUPNULL.getName());
+                        failureMsg.append("<br/>评卷员 " + marker.getLoginName() + "," + marker.getSubjectCode()
+                                + MarkerExcelError.GROUPNULL.getName());
                         failureNum++;
                         continue;
                     }
@@ -429,7 +429,7 @@ public class MarkerController extends BaseExamController {
             }
             String message = "已成功导入 " + successNum + " 条评卷员 ";
             addMessage(redirectAttributes, message + failureMsg);
-            RequestUtils.setLog(request, message);
+            RequestUtils.setLog(request, message + failureMsg);
         } catch (Exception e) {
             log.error("Batch import marker error!", e);
             addMessage(redirectAttributes, "导入评卷员失败!失败信息:" + e.getMessage());

+ 13 - 9
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/ProblemTypeController.java

@@ -8,6 +8,7 @@ import cn.com.qmth.stmms.common.domain.WebUser;
 import cn.com.qmth.stmms.common.enums.LogType;
 import cn.com.qmth.stmms.common.utils.RequestUtils;
 import net.sf.json.JSONObject;
+
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -18,6 +19,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
+
 import java.util.List;
 
 @Controller
@@ -34,36 +36,38 @@ public class ProblemTypeController extends BaseExamController {
 
     @Logging(menu = "查询问题卷分类", type = LogType.QUERY)
     @RequestMapping
-    public String list(HttpServletRequest request, Model model) {
-        List<ProblemType> list = problemService.findByExamId(getSessionExamId(request));
+    public String list(HttpServletRequest request, Model model, @RequestParam Integer examId) {
+        List<ProblemType> list = problemService.findByExamId(examId);
         model.addAttribute("list", list);
+        model.addAttribute("examId", examId);
         return "modules/exam/problemList";
     }
 
     @RequestMapping("/add")
-    public String add(ProblemType problem, Model model) {
+    public String add(ProblemType problem, Model model, @RequestParam Integer examId) {
         model.addAttribute("problem", problem);
+        model.addAttribute("examId", examId);
         return "modules/exam/problemForm";
     }
 
     @Logging(menu = "新增问题卷分类", type = LogType.ADD)
     @RequestMapping("/save")
-    public String save(HttpServletRequest request, ProblemType problem, RedirectAttributes redirectAttributes) {
-        int examId = getSessionExamId(request);
+    public String save(HttpServletRequest request, ProblemType problem, RedirectAttributes redirectAttributes,
+            @RequestParam Integer examId) {
         List<ProblemType> list = problemService.findByExamId(examId);
         if (list.size() >= 10) {
             addMessage(redirectAttributes, "问题卷类型不能超过10个");
-            return "redirect:/admin/exam/problem/type";
+            return "redirect:/admin/exam/problem/type?examId=" + examId;
         }
         if (!StringUtils.isNotBlank(problem.getName())) {
             addMessage(redirectAttributes, "名称不能为空");
-            return "redirect:/admin/exam/problem/type";
+            return "redirect:/admin/exam/problem/type?examId=" + examId;
         }
         problem.setExamId(examId);
         problem.setCustom(true);
         problem = problemService.save(problem);
         addMessage(redirectAttributes, "创建'" + problem.getName() + "'成功");
-        return "redirect:/admin/exam/problem/type";
+        return "redirect:/admin/exam/problem/type?examId=" + examId;
     }
 
     @RequestMapping("/edit/{id}")
@@ -82,7 +86,7 @@ public class ProblemTypeController extends BaseExamController {
             old.setName(problem.getName());
             problemService.save(old);
         }
-        return "redirect:/admin/exam/problem/type";
+        return "redirect:/admin/exam/problem/type?examId=" + old.getExamId();
     }
 
     @Logging(menu = "删除问题卷分类", type = LogType.DELETE)

+ 16 - 16
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/StudentController.java

@@ -206,8 +206,11 @@ public class StudentController extends BaseExamController {
         if (student != null) {
             studentService.deleteById(id);
             markService.deleteByStudent(student);
-            subjectService.updateUploadCount(student.getExamId(), student.getSubjectCode(), (int) studentService
-                    .countUploadedByExamIdAndSubjectCode(student.getExamId(), student.getSubjectCode()));
+            subjectService.updateUploadCount(
+                    student.getExamId(),
+                    student.getSubjectCode(),
+                    (int) studentService.countUploadedByExamIdAndSubjectCode(student.getExamId(),
+                            student.getSubjectCode()));
             addMessage(redirectAttributes, "删除考生成功");
             RequestUtils.setLog(request, "删除成功,id:" + id);
         } else {
@@ -256,10 +259,10 @@ public class StudentController extends BaseExamController {
 
             for (ExamStudent student : list) {
                 if (StringUtils.isBlank(student.getExamNumber()) || StringUtils.isBlank(student.getName())
-                        || StringUtils.isBlank(student.getSubjectCode()) || StringUtils
-                        .isBlank(student.getSubjectName()) || StringUtils.isBlank(student.getCollege()) || StringUtils
-                        .isBlank(student.getClassName()) || StringUtils.isBlank(student.getTeacher()) || StringUtils
-                        .isBlank(student.getStudentCode())) {
+                        || StringUtils.isBlank(student.getSubjectCode())
+                        || StringUtils.isBlank(student.getSubjectName()) || StringUtils.isBlank(student.getCollege())
+                        || StringUtils.isBlank(student.getClassName()) || StringUtils.isBlank(student.getTeacher())
+                        || StringUtils.isBlank(student.getStudentCode())) {
                     continue;
                 }
 
@@ -351,8 +354,7 @@ public class StudentController extends BaseExamController {
 
     @Logging(menu = "导入缺考名单", type = LogType.IMPORT_FILE)
     @RequestMapping(value = "/absentImport", method = RequestMethod.POST)
-    public String absentImportFile(HttpServletRequest request, MultipartFile file,
-            RedirectAttributes redirectAttributes) {
+    public String absentImportFile(HttpServletRequest request, MultipartFile file, RedirectAttributes redirectAttributes) {
         int examId = getSessionExamId(request);
         try {
             int successNum = 0;
@@ -380,7 +382,7 @@ public class StudentController extends BaseExamController {
             }
             String message = "已成功导入 " + successNum + " 条用户";
             addMessage(redirectAttributes, message + failureMsg);
-            RequestUtils.setLog(request, message);
+            RequestUtils.setLog(request, message + failureMsg);
         } catch (Exception e) {
             log.error("Batch import absentStudent error!", e);
             addMessage(redirectAttributes, "导入缺考考生失败!失败信息:" + e.getMessage());
@@ -404,8 +406,7 @@ public class StudentController extends BaseExamController {
 
     @Logging(menu = "导入违纪名单", type = LogType.IMPORT_FILE)
     @RequestMapping(value = "/breachImport", method = RequestMethod.POST)
-    public String breachImportFile(HttpServletRequest request, MultipartFile file,
-            RedirectAttributes redirectAttributes) {
+    public String breachImportFile(HttpServletRequest request, MultipartFile file, RedirectAttributes redirectAttributes) {
         int examId = getSessionExamId(request);
         // Exam exam = examService.findById(examId);
         try {
@@ -438,7 +439,7 @@ public class StudentController extends BaseExamController {
             }
             String message = "已成功导入 " + successNum + " 条用户";
             addMessage(redirectAttributes, message + failureMsg);
-            RequestUtils.setLog(request, message);
+            RequestUtils.setLog(request, message + failureMsg);
         } catch (Exception e) {
             log.error("Batch import BreachStudent error!", e);
             addMessage(redirectAttributes, "导入违纪考生失败!失败信息:" + e.getMessage());
@@ -479,8 +480,7 @@ public class StudentController extends BaseExamController {
     }
 
     @RequestMapping(value = "/uploadImport", method = RequestMethod.POST)
-    public String uploadImportFile(HttpServletRequest request, MultipartFile file,
-            RedirectAttributes redirectAttributes) {
+    public String uploadImportFile(HttpServletRequest request, MultipartFile file, RedirectAttributes redirectAttributes) {
         int examId = getSessionExamId(request);
         // Exam exam = examService.findById(examId);
         try {
@@ -555,8 +555,8 @@ public class StudentController extends BaseExamController {
     }
 
     private void buildSheetUrl(ExamStudent student) {
-        student.setSheetUrls(
-                fileService.getSheetUris(student.getExamId(), student.getExamNumber(), 1, student.getSheetCount()));
+        student.setSheetUrls(fileService.getSheetUris(student.getExamId(), student.getExamNumber(), 1,
+                student.getSheetCount()));
     }
 
     private void buildPackageUrl(ExamStudent student) {

+ 2 - 3
stmms-web/src/main/java/cn/com/qmth/stmms/admin/user/SubjectUserController.java

@@ -141,10 +141,8 @@ public class SubjectUserController extends BaseExamController {
         return user;
     }
 
-    @Logging(menu = "科组长绑定", type = LogType.ADD)
     @RequestMapping("/save")
-    public String add(Model model, HttpServletRequest request, UserSearchQuery query,
-            @RequestParam String subjectCode) {
+    public String add(Model model, HttpServletRequest request, UserSearchQuery query, @RequestParam String subjectCode) {
         int examId = getSessionExamId(request);
         Exam exam = examService.findById(examId);
         query.setSchoolId(exam.getSchoolId());
@@ -155,6 +153,7 @@ public class SubjectUserController extends BaseExamController {
         return "modules/exam/userSubject";
     }
 
+    @Logging(menu = "科组长绑定", type = LogType.ADD)
     @RequestMapping(value = "/add", method = RequestMethod.POST)
     public String save(@RequestParam String subjectCode, @RequestParam Integer[] userIds, HttpServletRequest request,
             RedirectAttributes redirectAttributes) {

+ 17 - 19
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/ExamStudentController.java

@@ -63,9 +63,8 @@ public class ExamStudentController extends BaseApiController {
     @ResponseBody
     public JSONObject checkStudent(HttpServletRequest request, @RequestBody ExamStudent examStudent) {
         JSONObject obj = new JSONObject();
-        Exam exam = examService.findById(examStudent.getExamId());
-        ExamStudent student = studentService
-                .findByExamIdAndExamNumber(examStudent.getExamId(), examStudent.getExamNumber());
+        ExamStudent student = studentService.findByExamIdAndExamNumber(examStudent.getExamId(),
+                examStudent.getExamNumber());
         if (student != null) {
             obj.accumulate("examId", examStudent.getExamId());
             obj.accumulate("campusCode", "0");
@@ -75,7 +74,6 @@ public class ExamStudentController extends BaseApiController {
             obj.accumulate("studentId", String.valueOf(student.getId()));
             obj.accumulate("subjectCode", student.getSubjectCode());
             obj.accumulate("subjectName", student.getSubjectName());
-            obj.accumulate("campusCode", "");
         } else {
             obj.accumulate("examId", examStudent.getExamId());
             obj.accumulate("campusCode", "");
@@ -111,8 +109,7 @@ public class ExamStudentController extends BaseApiController {
     @ResponseBody
     public JSONArray getStudent(HttpServletRequest request, ExamStudentSearchQuery query,
             @RequestParam(required = false) Boolean withScoreDetail,
-            @RequestParam(required = false) Boolean withMarkTrack,
-            @RequestParam(required = false) Boolean withSheetUrl) {
+            @RequestParam(required = false) Boolean withMarkTrack, @RequestParam(required = false) Boolean withSheetUrl) {
         ApiUser user = RequestUtils.getApiUser(request);
         JSONArray array = new JSONArray();
         if (query.getExamId() == null) {
@@ -127,7 +124,7 @@ public class ExamStudentController extends BaseApiController {
                 obj.accumulate("id", student.getId());
                 obj.accumulate("schoolId", student.getSchoolId());
                 obj.accumulate("examNumber", student.getExamNumber());
-                obj.accumulate("campusCode", "");
+                obj.accumulate("campusCode", "0");
                 obj.accumulate("campusName", StringUtils.trimToEmpty(student.getCampusName()));
                 obj.accumulate("subjectCode", student.getSubjectCode());
                 obj.accumulate("subjectName", student.getSubjectName());
@@ -160,9 +157,8 @@ public class ExamStudentController extends BaseApiController {
                         // 构造客观题得分明细
                         JSONArray objective = new JSONArray();
                         List<ScoreItem> scoreList = student.getScoreList(true);
-                        List<ExamQuestion> questionList = questionService
-                                .findByExamAndSubjectAndObjectiveAndPaperType(student.getExamId(),
-                                        student.getSubjectCode(), true, student.getPaperType());
+                        List<ExamQuestion> questionList = questionService.findByExamAndSubjectAndObjectiveAndPaperType(
+                                student.getExamId(), student.getSubjectCode(), true, student.getPaperType());
                         int i = 0;
                         for (ScoreItem item : scoreList) {
                             i++;
@@ -185,8 +181,8 @@ public class ExamStudentController extends BaseApiController {
                         // 构造主观题得分明细
                         JSONArray subjective = new JSONArray();
                         scoreList = student.getScoreList(false);
-                        questionList = questionService
-                                .findByExamAndSubjectAndObjective(student.getExamId(), student.getSubjectCode(), false);
+                        questionList = questionService.findByExamAndSubjectAndObjective(student.getExamId(),
+                                student.getSubjectCode(), false);
                         i = 0;
                         for (ScoreItem item : scoreList) {
                             i++;
@@ -213,10 +209,13 @@ public class ExamStudentController extends BaseApiController {
                     }
                     // 返回原图下载地址
                     if (withSheetUrl != null && withSheetUrl.booleanValue()) {
-                        obj.accumulate("sheetUrls", fileService
-                                .getSheetUris(student.getExamId(), student.getExamNumber(), 1, student.getSheetCount())
-                                .stream().map(uri -> fileService.getFileServer().concat(uri))
-                                .collect(Collectors.toList()));
+                        obj.accumulate(
+                                "sheetUrls",
+                                fileService
+                                        .getSheetUris(student.getExamId(), student.getExamNumber(), 1,
+                                                student.getSheetCount()).stream()
+                                        .map(uri -> fileService.getFileServer().concat(uri))
+                                        .collect(Collectors.toList()));
                     }
                     array.add(obj);
                 } catch (Exception e) {
@@ -268,9 +267,8 @@ public class ExamStudentController extends BaseApiController {
             if (Strings.isNullOrEmpty(examSeqCode)) {
                 student = studentService.findBySchoolIdAndSubjectCodeAndStudentCode(schoolId, subjectCode, studentCode);
             } else {
-                student = studentService
-                        .findBySchoolIdAndSubjectCodeAndStudentCodeAndRemark(schoolId, subjectCode, studentCode,
-                                examSeqCode);
+                student = studentService.findBySchoolIdAndSubjectCodeAndStudentCodeAndRemark(schoolId, subjectCode,
+                        studentCode, examSeqCode);
             }
             if (student != null) {
                 DecimalFormat df = new DecimalFormat("####.###");

+ 1 - 1
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/dataSync.jsp

@@ -79,7 +79,7 @@
 		<div class="control-group">
 			<label class="control-label">试卷结构</label>
 			<div class="controls">
-				<a href="${ctx}/admin/exam/data/sync/export">下载</a>
+				<a href="${ctx}/admin/exam/data/sync/export?examId=${dataSync.examId }">下载</a>
 			</div>
 		</div>
 		</c:if>

+ 1 - 8
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/libraryList.jsp

@@ -100,14 +100,7 @@
             </td>
             <td>${result.secretNumber}</td>
             <td>${result.status.name}</td>
-            <td>
-                <c:if test="${result.marker!=null}">
-                    ${result.marker.loginName}
-                </c:if>
-                <c:if test="${result.marker==null}">
-                    &nbsp;
-                </c:if>
-            </td>
+            <td>${result.markerLoginName}</td>
             <td>
                 <c:if test="${result.markerScore!=null}">
                     <fmt:formatNumber pattern="###.#" value="${result.markerScore}"/>

+ 2 - 2
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/problemEdit.jsp

@@ -28,8 +28,8 @@
 </head>
 <body>
 	<ul class="nav nav-tabs">
-		<li><a href="${ctx}/admin/exam/problem/type">分类列表</a></li>
-		<li class="active"><a href="${ctx}/admin/exam/problem/type/edit/${problem.id}">编辑分类</a></li>
+		<li><a href="${ctx}/admin/exam/problem/type?examId=${problem.examId}">分类列表</a></li>
+		<li class="active"><a href="#">编辑分类</a></li>
 	</ul><br/>
 	<form:form id="inputForm" modelAttribute="problem" action="${ctx}/admin/exam/problem/type/edit" method="post" class="form-horizontal">
 		<form:hidden path="id"/>

+ 4 - 3
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/problemForm.jsp

@@ -28,11 +28,12 @@
 </head>
 <body>
 	<ul class="nav nav-tabs">
-		<li><a href="${ctx}/admin/exam/problem/type">分类列表</a></li>
-		<li class="active"><a href="${ctx}/admin/exam/problem/type/add">添加分类</a></li>
+		<li><a href="${ctx}/admin/exam/problem/type?examId=${examId}">分类列表</a></li>
+		<li class="active"><a href="#">添加分类</a></li>
 	</ul><br/>
-	<form:form id="inputForm" modelAttribute="problem" action="${ctx}/admin/exam/problem/type/save" method="post" class="form-horizontal">
+	<form:form id="inputForm" modelAttribute="problem" action="${ctx}/admin/exam/problem/type/save?examId=${examId}" method="post" class="form-horizontal">
 		<tags:message content="${message}"/>
+		<form:hidden path="examId"/>
 		<div class="control-group">
 			<label class="control-label">名称:</label>
 			<div class="controls">

+ 1 - 1
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/problemList.jsp

@@ -12,7 +12,7 @@
 	<ul class="nav nav-tabs">
 		<li class="active"><a href="${ctx}/admin/exam/problem/type">分类列表</a></li>
 		<c:if test="${web_user.schoolAdmin==true}">
-		<li><a href="${ctx}/admin/exam/problem/type/add">添加分类</a></li>
+		<li><a href="${ctx}/admin/exam/problem/type/add?examId=${examId}">添加分类</a></li>
 		</c:if>
 	</ul>
 	<tags:message content="${message}"/>