Java 没有模型的SpringMVC项目

Java 没有模型的SpringMVC项目,java,jakarta-ee,Java,Jakarta Ee,我想创建一个应用程序,通过点击提交按钮来显示两个数字的除法结果!!我的问题是,在我的例子中,我可以不用模型和jsp文件而不用使用。 我之所以问这个问题,是因为在课堂上,当我试图使用这个答案时,我的老师告诉我尝试另一种解决方案,但他拒绝给我答案!请帮帮我,我很困惑!!在这一切之后,我试图让它与一个模型一起工作,但我做不到 我的模型 我的控制器 这是我的jsp文件!! tomcat服务器告诉我,我在这一行中有一个错误,我如何修复它!!此外,这是显示除法结果的正确方式吗??: </head>

我想创建一个应用程序,通过点击提交按钮来显示两个数字的除法结果!!我的问题是,在我的例子中,我可以不用模型和jsp文件而不用使用。 我之所以问这个问题,是因为在课堂上,当我试图使用这个答案时,我的老师告诉我尝试另一种解决方案,但他拒绝给我答案!请帮帮我,我很困惑!!在这一切之后,我试图让它与一个模型一起工作,但我做不到

我的模型

我的控制器

这是我的jsp文件!! tomcat服务器告诉我,我在这一行中有一个错误,我如何修复它!!此外,这是显示除法结果的正确方式吗??:

</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>