Java Spring:将带有数据的对象从控制器传递到jsp,并从springformsubmit获取预先保存的数据
我很抱歉,如果标题听起来令人困惑,我是一个春季新手 我有一个名为AdController的控制器类,我在ModelAndView中将一个Ad对象传递给jsp:Java Spring:将带有数据的对象从控制器传递到jsp,并从springformsubmit获取预先保存的数据,java,spring,forms,jsp,spring-mvc,Java,Spring,Forms,Jsp,Spring Mvc,我很抱歉,如果标题听起来令人困惑,我是一个春季新手 我有一个名为AdController的控制器类,我在ModelAndView中将一个Ad对象传递给jsp: ModelAndView laView = new ModelAndView("/ad/adAdd3"); Ad laAd = new Ad(); laAd.setPrice(100); model.put("ad", laAd); 在我的adCreate.jsp中,我允许用户添加关于这个广告的更多信息,
ModelAndView laView = new ModelAndView("/ad/adAdd3");
Ad laAd = new Ad();
laAd.setPrice(100);
model.put("ad", laAd);
在我的adCreate.jsp中,我允许用户添加关于这个广告的更多信息,除了价格。并使用将Ad对象提交到后端my Controller类:
<form:form modelAttribute="ad" method="post" class="form-horizontal" id="add-ad-form">
问题是,在后端,除了价格,我收到了用户添加的所有内容。我应该从提交的表格中获取价格数据吗?我遗漏了什么吗
谢谢 Spring MVC是无状态的,因此在控制器中,您只能从客户端接收到发送的内容。您需要在表单中包含
价格
,以便将其发送到服务器(您可以隐藏该字段,以防止用户更改它)。但是,这不会阻止用户手动发送包含所有其他数据的价格(只需稍微更改html代码),因此您也需要在服务器端处理此问题。Spring MVC根据请求中的参数创建广告对象的新实例。因此,如果price值在生成的表单中没有HTML输入,那么该值将不会在这个新实例中填充
您可以使用
标记将值从表单传回
如果查看HTML页面的源代码,您应该会看到这会将
添加到页面中