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