编写一个使用EL的JSP程序,用以获取一名学生五门学科的分数。每门学科的得分圴在100分以内。在另一页面显示所有提交分数的总分和平均分。使用 javabean, 使用表单获取页面数据可适当添加背景美化页面使用EL表达式语言
时间: 2024-11-29 15:38:08 浏览: 6
jsp开发程序教程2
在JSP中,我们可以使用Spring MVC框架配合EL (Expression Language) 来编写一个简单的Web应用程序,用于收集和计算学生的成绩。以下是步骤:
首先,我们需要创建一个Java Bean(例如`StudentScore`),用于存储学生信息:
```java
// StudentScore.java
public class StudentScore {
private String studentName;
private int[] scores = new int[5]; // 五门学科分数
// getters and setters
}
```
然后,在JSP页面(如`studentForm.jsp`)上,我们设置一个表单来输入学生的姓名和各科分数,并使用EL获取并验证数据:
```jsp
<!-- studentForm.jsp -->
<form action="calculateResult" method="post">
<label for="name">姓名:</label>
<input type="text" id="name" name="name" value="${studentName}"><br/>
<label>学科1分数:</label>
<input type="number" id="score1" name="score1" value="${scores[0]}"><br/>
<!-- 重复以上行,增加其他四门学科 -->
<button type="submit">提交</button>
</form>
```
接下来,在后端(如`CalculateResultController.java`,假设是Spring MVC控制器)处理POST请求,接收表单数据并计算总分和平均分:
```java
// CalculateResultController.java
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.ui.Model;
@Controller
public class CalculateResultController {
@GetMapping("/calculateResult")
public String displayForm() {
return "studentForm";
}
@PostMapping("/calculateResult")
public String calculate(Model model, StudentScore score) {
// 验证分数是否在100分内
for (int i : score.getScores()) {
if (i > 100) {
return "redirect:/calculateResult?error=true";
}
}
double totalScore = 0;
for (int scoreValue : score.getScores()) {
totalScore += scoreValue;
}
double averageScore = totalScore / score.getScores().length;
model.addAttribute("totalScore", totalScore);
model.addAttribute("averageScore", averageScore);
return "resultPage"; // 返回结果页面
}
}
```
最后,在`resultPage.jsp`中,使用EL表达式展示总分和平均分:
```jsp
<!-- resultPage.jsp -->
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html>
<head>
<!-- 美化样式省略 -->
</head>
<body>
<h1>学生成绩统计</h1>
<p>总分: ${totalScore}</p>
<p>平均分: ${averageScore}</p>
<%@ include file="/WEB-INF/views/include/error.jspf" %>
</body>
</html>
```
如果提交的数据有误,用户会被重定向回`studentForm.jsp`并附带错误提示。
阅读全文