基于javaweb和mysql的ssm+maven毕业设计管理系统(java+ssm+jsp+jquery+mysql)
·
基于javaweb和mysql的ssm+maven毕业设计管理系统(java+ssm+jsp+jquery+mysql)
私信源码获取及调试交流
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SSM+Maven毕业设计管理系统(java+ssm+jsp+jquery+mysql)
项目介绍
本项目包含三种角色:管理员、学生用户角色与教师角色。 管理员角色包含以下功能: 学生信息管理、教师信息管理。 用户角色包含以下功能: 查看通知公告,登录,登录后学生主页面,选择课题,选择课题后状态为等待老师去人状态,填写开题报告,提交中期检查,提交免答辩申请,上传论文等功能。 教师角色包含以下功能: 教师角色登录,教师首页,申报课题,审批学生选题,审核开题报告,审核中期检查,初审免答辩申请,审核论文是否过关,综合打分等功能。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:5.7/8.0版本均可; 6.是否Maven项目:是;
技术栈
- 后端:Spring+SpringMVC+Mybatis 2. 前端:JSP+CSS+JavaScript+jQuery
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录
teacher.setTeacherDescribe(desc);
teacher.setDeptId(shiyanshi);
teacher.setDept(deptMapper.selectByPrimaryKey(shiyanshi));
teacher.setUser(user);
teacherMapper.updateByPrimaryKeySelective(teacher);
model.addObject("teacher", teacher);
List<Dept> list = deptMapper.selectByExample(new DeptExample());
model.addObject("depts", list);
model.setViewName("/admin/editTeacher.jsp");
return model;
}
@RequestMapping("/removeTeacher")
public ModelAndView removeTeacher(ModelAndView model, String id) throws Exception {
Teacher teacher = teacherMapper.selectByPrimaryKey(id);
teacherMapper.deleteByPrimaryKey(id);
userMapper.deleteByPrimaryKey(teacher.getUserId());
int size = 8;
int page = 1;
List<Teacher> teachers = new ArrayList<>();
teachers = teacherMapper.selectByExample(new TeacherExample());
int pagesize = getTeacherPageSize(teachers, size);
teachers = getTeacherList(teachers, page, size);
if(page<=0) {
page = 1;
}
if(page>=pagesize) {
page = pagesize;
}
for(Teacher dbTeacher:teachers) {
User user = userMapper.selectByPrimaryKey(dbTeacher.getUserId());
if(user.getUserGender() == 1) {
user.setSex("男");
}else {
user.setSex("女");
}
dbTeacher.setUser(user);
}
model.addObject("teachers", teachers);
model.addObject("pagesize", pagesize);
model.addObject("nowpage", page);
List<Dept> list = deptMapper.selectByExample(new DeptExample());
model.addObject("depts", list);
model.setViewName("/admin/showTeacher.jsp");
return model;
}
// 添加教师信息
return studentService.getThisStudentScore(student.getStudentId());
}
}
return -1;
}
@ResponseBody
@RequestMapping("/getStudentAndMdbBySid")
public Student getStudentAndMdbBySid(String studentId) {
return studentService.getStudentAndMdbBySid(studentId);
}
//下载开题报告
@ResponseBody
@RequestMapping(value="/downKtbg",method=RequestMethod.GET)
public void downKtbg(HttpSession session,
HttpServletRequest request,HttpServletResponse response,
String studentId) {
if(studentId!=null&&!studentId.isEmpty()) {
Student stuAndKtbg = studentService.getStudentAndKtbgBySid(studentId);
Map<String, Object> map=new HashMap<>();
map.put("user", stuAndKtbg.getUser());
map.put("classInfo", stuAndKtbg.getClassInfo());
map.put("project", stuAndKtbg.getProject());
map.put("ktbg", stuAndKtbg.getKtbg());
try {
WordUtils.exportMillCertificateWord(request,response,map,"开题报告.ftl","开题报告.doc");
} catch (IOException e) {
e.printStackTrace();
}
return;
}else {
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
if(student.getProjectId()!=null&&student.getProjectId()!=0) {
Student stuAndKtbg = studentService.getStudentAndKtbgBySid(student.getStudentId());
Map<String, Object> map=new HashMap<>();
map.put("user", stuAndKtbg.getUser());
map.put("classInfo", stuAndKtbg.getClassInfo());
map.put("project", stuAndKtbg.getProject());
map.put("ktbg", stuAndKtbg.getKtbg());
try {
WordUtils.exportMillCertificateWord(request,response,map,"开题报告.ftl","开题报告.doc");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
return;
private StudentService studentService;
@ResponseBody
@RequestMapping("/getThisStudentScore")
public Integer getThisStudentScore(HttpSession session) {
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
return dabianService.getThisStudentScore(student.getStudentId());
}
}
return -1;
}
@ResponseBody
@RequestMapping(value="/insertOrUpdate",method=RequestMethod.POST)
public boolean insertOrUpdate(DaBian daBian) {
if(daBian.getId()==null) {
return dabianService.insertDabian(daBian);
}else {
return dabianService.updateDabian(daBian);
}
}
}
@Controller
@RequestMapping("/informController")
public class InformController {
@Autowired
private InformService informService;
@ResponseBody
@RequestMapping(value="/getSubInform",method=RequestMethod.GET)
public PageInfo getSubInform(int pageNum,int pageSize,int navigatePages) {
User user = userService.login(account, password);
if(user!=null) {
if(2==user.getUserRoles()) {
session.setAttribute("user", user);
return "student/sindex.html";
}
if(1==user.getUserRoles()) {
session.setAttribute("user", user);
return "teacher/tindex.html";
}
if(3==user.getUserRoles()) {
session.setAttribute("admin", user);
return "admin/showStudent";
}
}
return "passwordError";
}
@RequestMapping("/logout")
public String logout(HttpSession session) {
session.removeAttribute("user");
return "redirect:login.html";
}
@ResponseBody
@RequestMapping(value="/updateInfo",method=RequestMethod.POST)
public boolean updateStudentInfo(User user,
@RequestParam(value="portrait",required=false)MultipartFile portrait,HttpServletRequest request) {
if(portrait!=null&&portrait.getSize()>0) {
if(portrait.getSize()>(10*1024*1024)) {
return false;
}
String filename=portrait.getOriginalFilename();
String dbPath="/graduation/portrait/"+user.getUserId();
String basePath=Thread.currentThread().getContextClassLoader().getResource("").getPath().substring(0,Thread.currentThread().getContextClassLoader().getResource("").getPath().length()-16)+"/portrait/"+user.getUserId();
if(!new File(basePath).exists()) {
new File(basePath).mkdirs();
}
File portraitFile=new File(basePath,filename);
try {
portrait.transferTo(portraitFile);
user.setUserPortrait(dbPath+"/"+filename);
return userService.updateUserInfo(user);
} catch (Exception e) {
e.printStackTrace();
@Controller
@RequestMapping("/downController")
public class DownController {
@Autowired
private DownService downService;
@ResponseBody
@RequestMapping(value="/getSubDown",method=RequestMethod.GET)
public PageInfo getSubDown(@RequestParam(defaultValue="1")int pageNum,
@RequestParam(defaultValue="6")int pageSize,@RequestParam(defaultValue="1")int navigatePages) {
PageHelper.startPage(pageNum, pageSize);
List<Down> list = downService.getAllDown();
return new PageInfo<>(list, navigatePages);
}
@RequestMapping("/downloadResource")
public @ResponseBody String downloadResource(HttpSession session,HttpServletResponse response,
HttpServletRequest request,@RequestParam(required=true)String fileName) throws Exception {
if(fileName==null||fileName=="") {
return null;
}
String dataDir=request.getServletContext().getRealPath("/WEB-INF/file");
Path path=Paths.get(dataDir, fileName);
if(Files.exists(path)) {
response.setContentType("application/octet-stream");
response.addHeader("Content-Disposition", "attachment;filename="+Utils.filenameEncoding(fileName, request));
try {
Files.copy(path, response.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
@ResponseBody
@RequestMapping(value="/ispassword",method=RequestMethod.POST)
public boolean ispassword(@RequestParam("password")String password,HttpSession session) {
User user = (User) session.getAttribute("user");
if(user!=null) {
return userService.ispassword(Utils.md5(password),user.getUserId());
}
return false;
}
@ResponseBody
@RequestMapping(value="/login",method=RequestMethod.POST)
public String login(HttpSession session,String randStr,String account,String password) {
String randStr2=(String) session.getAttribute("randStr");
if(randStr2!=null&&randStr2.equals(randStr)) {
password=Utils.md5(password);
Subject currentUser = SecurityUtils.getSubject();
if (!currentUser.isAuthenticated()) {
//把用户名和密码封装为UsernamePasswordToken
UsernamePasswordToken token = new UsernamePasswordToken(account, password);
try {
//执行登录
currentUser.login(token);
return toUI(session,account,password);
}
//用户不存在
catch (UnknownAccountException ae) {
return "passwordError";
}
//用户被锁定
catch (LockedAccountException e) {
return "passwordError";
}
}else {
return toUI(session,account,password);
}
}else {
return "randStrError";
}
}
private String toUI(HttpSession session,String account,String password) {
User user = userService.login(account, password);
if(user!=null) {
if(2==user.getUserRoles()) {
session.setAttribute("user", user);
return "student/sindex.html";
}
}
@RequestMapping("/showTeacher")
public ModelAndView showTeacher(ModelAndView model, Integer page) throws Exception {
//页码对象
//设置总页数
int size = 8;
if(page == null) {
page = 1;
}
List<Teacher> teachers = new ArrayList<>();
teachers = teacherMapper.selectByExample(new TeacherExample());
int pagesize = getTeacherPageSize(teachers, size);
teachers = getTeacherList(teachers, page, size);
if(page<=0) {
page = 1;
}
if(page>=pagesize) {
page = pagesize;
}
for(Teacher teacher:teachers) {
User user = userMapper.selectByPrimaryKey(teacher.getUserId());
if(user.getUserGender() == 1) {
user.setSex("男");
}else {
user.setSex("女");
}
teacher.setUser(user);
}
model.addObject("teachers", teachers);
model.addObject("pagesize", pagesize);
model.addObject("nowpage", page);
model.setViewName("/admin/showTeacher.jsp");
return model;
}
@RequestMapping("/editTeacher")
public ModelAndView editTeacher(ModelAndView model, String id) throws Exception {
Teacher teacher = teacherMapper.selectByPrimaryKey(id);
User user = userMapper.selectByPrimaryKey(teacher.getUserId());
if(user.getUserGender() == 1) {
user.setSex("男");
}else {
user.setSex("女");
}
teacher.setUser(user);
Lunwen lw=new Lunwen();
lw.setLunwenDate(new Date());
lw.setLunwenName(filename);
lw.setLunwenPath(basePath+"/"+filename);
lunwenService.insertOrUpdate(student.getStudentId(),lw);
}else {
return false;
}
//相同文件会覆盖
lunwen.transferTo(lunewenFile);
return true;
} catch (Exception e) {
e.printStackTrace();
}
}
return false;
}
@RequestMapping("/downloadResource")
public @ResponseBody void downloadResource(HttpServletResponse response,
HttpServletRequest request,String studentId) throws Exception {
if(studentId==null||studentId.isEmpty()) {
return;
}
Lunwen lunwen = lunwenService.getLunwenBySid(studentId);
if(lunwen==null) {
return;
}
String dataDir=lunwen.getLunwenPath();
String fileName=lunwen.getLunwenName();
Path path=Paths.get(dataDir);
if(Files.exists(path)) {
response.setContentType("application/octet-stream");
response.addHeader("Content-Disposition", "attachment;filename="+Utils.filenameEncoding(fileName, request));
try {
Files.copy(path, response.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
return;
}
}
map.put("mdb", stuAndMdb.getMdb());
map.put("teacher", stuAndMdb.getTeacher());
try {
WordUtils.exportMillCertificateWord(request,response,map,"免答辩申请表.ftl","免答辩申请表.doc");
} catch (IOException e) {
e.printStackTrace();
}
return;
}else {
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
if(student.getProjectId()!=null&&student.getProjectId()!=0) {
Student stuAndMdb = studentService.getStudentAndMdbBySid(student.getStudentId());
Map<String, Object> map=new HashMap<>();
map.put("user", stuAndMdb.getUser());
map.put("classInfo", stuAndMdb.getClassInfo());
map.put("project", stuAndMdb.getProject());
map.put("mdb", stuAndMdb.getMdb());
map.put("teacher", stuAndMdb.getTeacher());
try {
WordUtils.exportMillCertificateWord(request,response,map,"免答辩申请表.ftl","免答辩申请表.doc");
} catch (IOException e) {
e.printStackTrace();
}
return;
}
}
}
}
}
//下载中期检查
@ResponseBody
@RequestMapping(value="/downZqjc",method=RequestMethod.GET)
public void downZqjc(HttpSession session,
HttpServletRequest request,HttpServletResponse response,
String studentId) {
if(studentId!=null&&!studentId.isEmpty()) {
Student stuAndZqjc = studentService.getStudentAndZqjcBySid(studentId);
Map<String, Object> map=new HashMap<>();
map.put("user", stuAndZqjc.getUser());
map.put("project", stuAndZqjc.getProject());
map.put("zqjc", stuAndZqjc.getZqjc());
map.put("teacher", stuAndZqjc.getTeacher());
try {
WordUtils.exportMillCertificateWord(request,response,map,"中期检查表.ftl","中期检查表.doc");
} catch (IOException e) {
e.printStackTrace();
private StudentService studentService;
@Autowired
private ProjectService projectService;
@ResponseBody
@RequestMapping("/hasChooseProject")
public Student hasChooseProject(HttpSession session,HttpServletResponse response) {
response.setContentType("application/json;charset=utf-8");
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
Project project = projectService.getProjectByStudentId(student.getStudentId());
if(project!=null) {
return student;
}
}
}
return new Student();
}
@ResponseBody
@RequestMapping(value="/updateProjectByStudentId/{projectId}",method=RequestMethod.PUT)
public boolean updateProjectByStudentId(HttpSession session,@PathVariable("projectId")String projectId) {
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
if(!student.getStudentId().isEmpty()) {
return projectService.updateStudentIdByProjectId(student.getStudentId(), projectId);
}
}
}
return false;
}
@ResponseBody
@RequestMapping(value="/updateTeacherId")
public boolean updateTeacherId(HttpSession session,String teacherId) {
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
return studentService.updateTeacherId(teacherId,student.getStudentId());
}
}
PageInfo pageInfo=new PageInfo(list,navigatePages);
return pageInfo;
}
@ResponseBody
@RequestMapping(value="/getSubInformById",method=RequestMethod.GET)
public Inform getSubInformById(int informId) {
return informService.getSubInformById(informId);
}
}
public class Utils {
public static String getUUID() {
return UUID.randomUUID().toString().replaceAll("-", "");
}
public static String md5(String password) {
return password;
//return DigestUtils.md5DigestAsHex(password.getBytes());
}
//用来对下载文件名进行编码
public static String filenameEncoding(String filename, HttpServletRequest request) throws IOException {
String agent = request.getHeader("User-Agent"); //获取浏览器
if (agent.contains("Firefox")) {
BASE64Encoder base64Encoder = new BASE64Encoder();
filename = "=?utf-8?B?"
+ base64Encoder.encode(filename.getBytes("utf-8"))
+ "?=";
}else {
filename = URLEncoder.encode(filename, "utf-8");
}
return filename;
}
public static void main(String[] args) {
System.out.println(md5("123456"));
}
}
}
model.addObject("students", students);
model.addObject("pagesize", pagesize);
model.addObject("nowpage", page);
model.setViewName("/admin/showStudent.jsp");
return model;
}
// 添加学生
@RequestMapping("/addStudentCommit")
public ModelAndView addStudentCommit(ModelAndView model, User addUser, String sid) throws Exception {
addUser.setUserPassword(Utils.md5("123456"));
addUser.setUserId(UUID.randomUUID().toString().replaceAll("-", ""));
addUser.setUserRoles(2);
userMapper.insertSelective(addUser);
Student addStudent = new Student();
addStudent.setClassId(1);
addStudent.setClassInfo(classInfoMapper.selectByPrimaryKey(1));
addStudent.setStudentId(UUID.randomUUID().toString().replaceAll("-", ""));
addStudent.setUserId(addUser.getUserId());
studentMapper.insertSelective(addStudent);
int page = 1;
//页码对象
//设置总页数
int size = 8;
List<Student> students = new ArrayList<>();
students = studentMapper.selectByExample(new StudentExample());
int pagesize = getPageSize(students, size);
students = getList(students, page, size);
if(page<=0) {
page = 1;
}
if(page>=pagesize) {
page = pagesize;
}
for(Student student:students) {
User user = userMapper.selectByPrimaryKey(student.getUserId());
if(user.getUserGender() == 1) {
user.setSex("男");
}else {
}
student.setUser(user);
student.setTeacher(teacherMapper.findTeacherByTeacherId(student.getTeacherId()));;
}
model.addObject("students", students);
model.addObject("pagesize", pagesize);
model.addObject("nowpage", page);
model.setViewName("/admin/showStudent.jsp");
return model;
}
@RequestMapping("/showTeacher")
public ModelAndView showTeacher(ModelAndView model, Integer page) throws Exception {
//页码对象
//设置总页数
int size = 8;
if(page == null) {
page = 1;
}
List<Teacher> teachers = new ArrayList<>();
teachers = teacherMapper.selectByExample(new TeacherExample());
int pagesize = getTeacherPageSize(teachers, size);
teachers = getTeacherList(teachers, page, size);
if(page<=0) {
page = 1;
}
if(page>=pagesize) {
page = pagesize;
}
for(Teacher teacher:teachers) {
User user = userMapper.selectByPrimaryKey(teacher.getUserId());
if(user.getUserGender() == 1) {
user.setSex("男");
}else {
user.setSex("女");
}
teacher.setUser(user);
}
model.addObject("teachers", teachers);
model.addObject("pagesize", pagesize);
model.addObject("nowpage", page);
model.setViewName("/admin/showTeacher.jsp");
return model;
}
@RequestMapping("/editTeacher")
public ModelAndView editTeacher(ModelAndView model, String id) throws Exception {
Teacher teacher = teacherMapper.selectByPrimaryKey(id);
User user = userMapper.selectByPrimaryKey(teacher.getUserId());
if(user.getUserGender() == 1) {
user.setSex("男");
@ResponseBody
@RequestMapping(value="/getProjectListByTeacherId",method=RequestMethod.GET)
public PageInfo<Project> getProjectListByTeacherId(@RequestParam(required=true)String teacherId,
@RequestParam(defaultValue="1")int pageNum,@RequestParam(defaultValue="8")int pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<Project> list = projectService.getProjectListByTeacherId(teacherId);
return new PageInfo<>(list);
}
@ResponseBody
@RequestMapping(value="/getCountProjectNum",method=RequestMethod.GET)
public int getCountProjectNum() {
return projectService.getCountProjectNum();
}
@ResponseBody
@RequestMapping(value="/thisTeacherYesProjectNum",method=RequestMethod.GET)
public int thisTeacherYesProjectNum(HttpSession session) {
User user=(User) session.getAttribute("user");
if(user!=null) {
Teacher teacher = teacherService.findTeacherByUserId(user.getUserId());
if(teacher!=null) {
String teacherId = teacher.getTeacherId();
return projectService.thisTeacherYesProjectNum(teacherId);
}
}
return 0;
}
@ResponseBody
@RequestMapping(value="/thisTeacherUndefinedStudentNum",method=RequestMethod.GET)
public int thisTeacherUndefinedStudentNum(HttpSession session) {
User user=(User) session.getAttribute("user");
if(user!=null) {
Teacher teacher = teacherService.findTeacherByUserId(user.getUserId());
if(teacher!=null) {
String teacherId = teacher.getTeacherId();
return studentService.thisTeacherUndefinedStudentNum(teacherId);
}
}
return 0;
}
/**
* 添加与更新方法
* @param project
* @param session
}
return userService.updateUserInfo(user);
}
@ResponseBody
@RequestMapping(value="/updatePwd",method=RequestMethod.PUT)
public boolean updateStudentPwd(User user,HttpSession session) {
String password=user.getUserPassword();
if(password!=null&&!password.isEmpty()) {
user.setUserPassword(Utils.md5(password));
boolean bool = userService.updateUserInfo(user);
if(bool==true) {
session.removeAttribute("user");
return true;
}
}
return false;
}
}
@ResponseBody
@RequestMapping("/hasChooseProject")
public Student hasChooseProject(HttpSession session,HttpServletResponse response) {
response.setContentType("application/json;charset=utf-8");
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
Project project = projectService.getProjectByStudentId(student.getStudentId());
if(project!=null) {
return student;
}
}
}
return new Student();
}
@ResponseBody
@RequestMapping(value="/updateProjectByStudentId/{projectId}",method=RequestMethod.PUT)
public boolean updateProjectByStudentId(HttpSession session,@PathVariable("projectId")String projectId) {
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
if(!student.getStudentId().isEmpty()) {
return projectService.updateStudentIdByProjectId(student.getStudentId(), projectId);
}
}
}
return false;
}
@ResponseBody
@RequestMapping(value="/updateTeacherId")
public boolean updateTeacherId(HttpSession session,String teacherId) {
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
return studentService.updateTeacherId(teacherId,student.getStudentId());
}
}
return false;
}
response.setHeader("Content-Disposition", "attachment;filename="
// .concat(String.valueOf(URLEncoder.encode(fileName, "UTF-8"))));
.concat(String.valueOf(Utils.filenameEncoding(fileName, request))));
out = response.getOutputStream();
byte[] buffer = new byte[512]; // 缓冲区
int bytesToRead = -1;
// 通过循环将读入的Word文件的内容输出到浏览器中
while((bytesToRead = fin.read(buffer)) != -1) {
out.write(buffer, 0, bytesToRead);
}
} finally {
if(fin != null) fin.close();
if(out != null) out.close();
if(file != null) {
//file.delete(); // 删除临时文件
}
}
}
private static File createDoc(Map<?, ?> dataMap, Template template) {
String name = "test.doc";
File f = new File(name);
Template t = template;
try {
// 这个地方不能使用FileWriter因为需要指定编码类型否则生成的Word文档会因为有无法识别的编码而无法打开
Writer w = new OutputStreamWriter(new FileOutputStream(f), "utf-8");
t.process(dataMap, w);
w.close();
} catch (Exception ex) {
ex.printStackTrace();
throw new RuntimeException(ex);
}
return f;
}
}






更多推荐



所有评论(0)