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";
    }
}

}

posted @ 2025-04-25 09:44  申shen  阅读(7)  评论(0)    收藏  举报