在我的Spring应用程序中,当我点击我的表单上的提交按钮重新加载页面时,我确定我已经忘记了一些但我看不到错误
在jsp中,我正在创建这样的表单:
<form:form commandName="municipioBean" method="POST">
<label for="df_mun">Estado</label>
<form:select path="df_edo" name="df_edo" id="df_edo"
onchange="getMunicipios();">
<form:option value="0">Seleccione un estado...</form:option>
<form:options items="${listaEstado}" itemValue="codProvincia"
itemLabel="desProvincia" />
</form:select>
<label for="df_mun">Municipio</label>
<form:select path="df_mun" name="df_mun" id="df_mun">
<option selected value="0">Seleccione un estado primero...</option>
</form:select>
<form:hidden id="id_ciudadano" path="id_ciudadano" />
<input type="submit" name="procesar" value="Aceptar" />
</form:form>
我的控制员:
@RequestMapping(method = RequestMethod.POST, params = "procesar")
public String procesaSubmit(
@ModelAttribute("municipioBean") MunicipioBean municipioBean,
BindingResult result, HttpServletRequest request, ModelMap model) {
return ConstantesAbre.PASOS_JSP;
}
Params值等于我的提交按钮的名称,RequestMethod也没关系,问题是什么?。
感谢您的建议并抱歉我的英语不好D:
答案 0 :(得分:0)
您需要在@RequestMapping中添加一个值,通常是页面名称。
例如
@RequestMapping(method = RequestMethod.POST, params = "procesar", value="/theJspName")
我通常设置我的控制器,在类的顶部使用十分路径的基本路径,如下所示:
@Controller
@RequestMapping("/main")
public class MainController {
@RequestMapping(method = RequestMethod.POST, params = "procesar", value="/theJspName")
public String procesaSubmit(@ModelAttribute("municipioBean") MunicipioBean municipioBean, BindingResult result, HttpServletRequest request, ModelMap model) {
return ConstantesAbre.PASOS_JSP;
}
所以你的完整路径就像http://server:port/application/main/theJspName
根据您设置ViewResolver的方式,可能还有一个扩展程序。
还要确保你有
<context:annotation-config/>
<context:component-scan base-package="your package here"/>
<mvc:annotation-driven/>
在app-servlet.xml或applicationContext.xml文件中的某处定义。
希望有所帮助。