【发布时间】:2016-12-22 09:59:20
【问题描述】:
当我发送一个输入为空的表单时,我正在尝试解决一个错误。
这是我的方法:
@RequestMapping(value = "/modifier.html", method = RequestMethod.POST)
public String modifier(ModelMap map, @ModelAttribute("FormObject") FormObject formObject, BindingResult result, HttpServletRequest req) {
formObject.setModif(true);
String idParam = req.getParameter("idTypeOuverture");
if (result.hasErrors()) {
return "redirect:/gestion.html?section=Configuration&panel=4&ouvrir=modifier";
} else {
//Instructions
}
当出现错误(空输入)时,控制器会重定向到此链接以告诉用户更正错误。问题是当我在这里检查参数时,它们看起来是正确的(id、name ...),但是在以下方法中 id 变为 null:
@Override
public ModelAndView dispatcher(HttpServletRequest request, HttpServletResponse response) throws RorException {
Map<String, Object> myModel = (Map<String, Object>) request.getAttribute(EnumParam.R_MY_MODEL.getKey());
Enumeration<?> keys = request.getParameterNames();
while (keys.hasMoreElements()) {
String paramName = (String) keys.nextElement();
String value = request.getParameter(paramName);
myModel.put(paramName, value);
}
GlobalSession globalSession = (GlobalSession) getApplicationContext().getBean(Utilities.GLOBALSESSION_BEAN_REF);
myModel.put("module", globalSession.getModule().getKeyMessage());
String section = request.getParameter("section");
// This instruction returns null
String idForm = request.getParameter("id");
id = Integer.parseInt(idForm);
// This instruction returns NumberFormatException
ObjectForm of = getForm(id);
// ...
}
嗯,不知道为什么改写后参数id变了?你有什么主意吗?我尝试在第一种方法中重新定义参数,但仍然得到相同的 NFE。
提前谢谢你。
谢谢
【问题讨论】:
-
你得到 null 因为 gestion.html 上的重定向不包含
id参数
标签: spring spring-mvc http-request-parameters