Java 没有模型的SpringMVC项目
我想创建一个应用程序,通过点击提交按钮来显示两个数字的除法结果!!我的问题是,在我的例子中,我可以不用模型和jsp文件而不用使用。 我之所以问这个问题,是因为在课堂上,当我试图使用这个答案时,我的老师告诉我尝试另一种解决方案,但他拒绝给我答案!请帮帮我,我很困惑!!在这一切之后,我试图让它与一个模型一起工作,但我做不到 我的模型 我的控制器 这是我的jsp文件!! tomcat服务器告诉我,我在这一行中有一个错误,我如何修复它!!此外,这是显示除法结果的正确方式吗??:Java 没有模型的SpringMVC项目,java,jakarta-ee,Java,Jakarta Ee,我想创建一个应用程序,通过点击提交按钮来显示两个数字的除法结果!!我的问题是,在我的例子中,我可以不用模型和jsp文件而不用使用。 我之所以问这个问题,是因为在课堂上,当我试图使用这个答案时,我的老师告诉我尝试另一种解决方案,但他拒绝给我答案!请帮帮我,我很困惑!!在这一切之后,我试图让它与一个模型一起工作,但我做不到 我的模型 我的控制器 这是我的jsp文件!! tomcat服务器告诉我,我在这一行中有一个错误,我如何修复它!!此外,这是显示除法结果的正确方式吗??: </head>
</head>
<body>
<form:form method="post" action="resultat" ModelAttribute="division">
<label for="Dividende">Dividende :</label>
<form:input id="Dividende" path="dividende" /> /
<label for="Diviseur">Diviseur :</label>
<form:input id="Diviseur" path="diviseur" />
<br>
<button type="submit">Calculer</button>
<br>
<label for="resultat">Resultat de la division :</label>
<output id="resultat" for="resultat" />
</form:form>
</body>
</html>
如果您创建一个能够处理空值的模型会更好,这就是为什么您应该更喜欢包装器而不是原语。此外,此模型应包含操作的结果,以便它可以用作输入的对象,也可以用作显示结果的对象
public class Division {
private BigDecimal dividend;
private BigDecimal divisor;
private BigDecimal result;
@NotNull
public BigDecimal getDividend() {
return dividend;
}
public void setDividend(BigDecimal dividend) {
this.dividend = dividend;
}
public BigDecimal getDivisor() {
return divisor;
}
@NotZero
@NotNull
public void setDivisor(BigDecimal divisor) {
this.divisor = divisor;
}
public BigDecimal getResult() {
return result;
}
public void setResult(BigDecimal result) {
this.result = result;
}
}
t@NotZero。在控制器中,您应该具有如下内容:
@Controller
@RequestMapping("/arithmetic-operations")
public class ArithemticOperationsController {
@RequestMapping("/divide")
public String divide(@Valid Divison division, BindingResult result) {
if (result.hasErrors()) {
return "DivisionInput";
}
BigDecimal result = division.getDividend().divide(division.getDivisor());
division.setResult(result);
return "DivisionInput";
}
}
您应该有这样一个JSP,您可以在成功和错误情况下重用它,这就是我返回相同结果的原因
division.jsp
您可以获得有关使用Bean验证和设置Spring MVC环境的更多信息。如果您的老师不想给您答案,我们没有理由给您答案,不是吗?只是一个线索:您最近上过JavaScript课程吗?@superbob:是的!但我现在在这里已经一个多星期了,我真的受够了!!我试图寻找一个解决方案,但我做不到我还是一个初学者@谢尔盖·巴列斯塔:不,我没有**我对这个话题做了一些改变!请向上看!!我做了一个模型!我换了控制器!!我需要一些帮助,我还是这个领域的初学者!!!感谢您的帮助**@user3816569在我的回答中使用commandName并删除ModelAttribute!非常感谢,它确实起作用了!但是你能解释一下为什么我没有使用ModelAttribute吗?因为我的老师给我做了一个注册表格的例子!在jsp文件中,他输入了ModelAttribute!!最后一件事!!如何在同一页中显示结果?我成功地将它显示在另一个jsp文件中,但我希望它显示在同一个jsp文件中!再次感谢你,愿上帝保佑你you@user3816569要在从控制器返回相同字符串的同一页面中显示结果,请检查“我的答案”,它始终返回它将显示的页面的输入。请接受答案,单击我答案左侧的复选标记以表示感谢:我知道在我的控制器中,我应该返回相同的jsp文件!!我做到了!但是当我在我的服务器上点击提交按钮时,什么都没有发生!!我想我的jsp文件有问题!你能帮忙吗??也有没有可能在没有标签的情况下进行此练习???
public class Division {
private BigDecimal dividend;
private BigDecimal divisor;
private BigDecimal result;
@NotNull
public BigDecimal getDividend() {
return dividend;
}
public void setDividend(BigDecimal dividend) {
this.dividend = dividend;
}
public BigDecimal getDivisor() {
return divisor;
}
@NotZero
@NotNull
public void setDivisor(BigDecimal divisor) {
this.divisor = divisor;
}
public BigDecimal getResult() {
return result;
}
public void setResult(BigDecimal result) {
this.result = result;
}
}
@Controller
@RequestMapping("/arithmetic-operations")
public class ArithemticOperationsController {
@RequestMapping("/divide")
public String divide(@Valid Divison division, BindingResult result) {
if (result.hasErrors()) {
return "DivisionInput";
}
BigDecimal result = division.getDividend().divide(division.getDivisor());
division.setResult(result);
return "DivisionInput";
}
}
<form:form method="POST" commandName="division" action="/arithmetic-operations/divide">
....
</form:form>