4.24
今天上午上的python的实验课,写的pta上的一些题目,然后去上了体育课(跆拳道),下午上的计算机网络基础。晚上回来继续完成团队项目,
package com.sti.newsclassifier.controller;
import com.sti.newsclassifier.entity.ClassificationResult;
import com.sti.newsclassifier.entity.User;
import com.sti.newsclassifier.exception.ClassificationException;
import com.sti.newsclassifier.service.ClassificationService;
import com.sti.newsclassifier.service.ModelService;
import com.sti.newsclassifier.service.UserService;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("/classification")
public class ClassificationController {
private final ModelService modelService;
private final UserService userService;
private final ClassificationService classificationService; // 添加依赖
// 修改构造函数注入 ClassificationService
public ClassificationController(ModelService modelService,
UserService userService,
ClassificationService classificationService) {
this.modelService = modelService;
this.userService = userService;
this.classificationService = classificationService;
}
@GetMapping("")
public String showClassificationPage(Model model) {
// 检查用户是否已登录
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication == null || !authentication.isAuthenticated()) {
return "redirect:/auth/login";
}
// 可以添加用户信息到模型(如果需要)
User user = userService.findByUsername(authentication.getName());
model.addAttribute("user", user);
return "classification/classify"; // 返回分类页面模板
}
// ClassificationController.java
// ClassificationController.java
@PostMapping("/classify")
public String classifyText(@RequestParam String text, Model model) {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication == null || !authentication.isAuthenticated()) {
return "redirect:/auth/login"; // 重定向到登录页,而非返回视图
}
User user = userService.findByUsername(authentication.getName());
try {
ClassificationResult result = classificationService.classifyAndSave(text, user);
model.addAttribute("result", result);
model.addAttribute("user", user); // 确保结果页有user对象(虽然登录时已有,但显式添加更安全)
return "classification/result";
} catch (ClassificationException e) {
model.addAttribute("errorMessage", e.getMessage());
model.addAttribute("inputText", text);
model.addAttribute("user", user); // 错误情况下也需传递user对象
return "classification/result";
}
}
}
浙公网安备 33010602011771号