答案是使用Spring Boot快速搭建问卷工具,通过定义Question和Survey数据结构,创建SurveyController处理问卷展示与提交,利用@RestController提供REST接口,结合内嵌Tomcat运行服务,实现基础Web交互。
要在Java中创建一个小型在线问卷工具,核心是搭建一个简单的Web服务来展示问卷、收集用户提交的数据,并返回结果。可以使用轻量级框架如Spring Boot快速实现,无需复杂配置。
Spring Boot能快速启动Web应用,适合开发小型工具。
创建Java类来表示问卷和问题。
public class Question {
private String text;
private List options;
private String answer;
// 构造函数、getter和setter
public Question(String text, List options) {
this.text = text;
this.options = options;
}
// getter/setter 省略,可用Lombok简化
}
public class Survey {
private List questions = new ArrayList<>();
public Survey() {
// 初始化示例问题
questions.add(new Question("您对我们的服务满意吗?",
Arrays.asList("非常满意", "满意", "一般", "不满意")));
questions.add(new Question("您会推荐我们吗?",
Arrays.asList("会", "可能会", "不会")));
}
public List getQuestions() {
return questions;
}
}
使用@Controller或@RestController定义网页路由。
@RestController
public class SurveyController {
private final Survey survey = new Survey();
private final Map responses = new HashMap<>(); // 简单存储
@GetMapping("/survey")
public Survey getSurvey() {
return survey;
}
@PostMapping("/submit")
public String submitAnswers(@RequestBody Map userAnswers) {
// 存储答案(这里可写入文件或数据库)
userAnswers.forEach((qIndex, answer) ->
resp
onses.put(Integer.parseInt(qIndex), answer)
);
return "感谢您的参与!";
}
}
若想返回HTML页面,可改用@Controller并配合Thymeleaf模板渲染问卷表单。
运行主类启动内嵌Tomcat服务器,默认端口8080。
基本上就这些。不复杂但容易忽略的是数据持久化和并发安全。当前responses用HashMap,仅适用于单用户测试。真实场景建议加入数据库(如SQLite)或至少加同步控制。小型工具这样已够用。