目前我正在我的页面上使用分页,它使用 MultiActionController
完美地显示 jsp 页面,现在我想在同一页面上验证一个简单的文本字段(input/form:input
)还希望在单击链接后从下拉列表(选择选项
)中检索名称和 ID。简单的 !!
两个问题
我可以使用类实现 validator 吗?并以与 simpleformcontroller 相同的方式注入(inject)配置中或 Controller 中的其他方式?如何?请举个例子?
我可以在jsp中使用java bean -> 我总是遇到绑定(bind)错误,如何指示 Controller 使用这个bean?我已将其作为参数传递给我的方法 add ,并尝试覆盖 newCommandObject
Controller.java
public ModelAndView add(HttpServletRequest request, HttpServletResponse response, Person person) throws Exception {
return new ModelAndView("userpage");
}
@Override
protected Object newCommandObject(Class clazz)
throws Exception {
return new Person();
}
最佳答案
我将在 Spring 版本 > 2.5 中执行如下操作
@Controller
public class YourController
{
protected final Log logger = LogFactory.getLog(getClass());
private final String yourInputJsp = "yourInputJsp";
private final String yourInputJspSuccess = "yourInputJspSuccess";
private YourService yourService;
@Autowired
@Qualifier("yourFormValidator")
private YourFormValidator validator;
@RequestMapping(value = "/yourRequest.htm", method = RequestMethod.GET)
public String referenceData(ModelMap model, HttpServletRequest request) throws Exception
{
yourService = new YourServiceImpl(ContextHandler.getWebAppContext(request));
YourFormData yourFormData = new YourFormData();
model.addAttribute("yourFormData", yourFormData);
return yourInputJsp;
}
@InitBinder()
public void initBinder(WebDataBinder binder) throws Exception {
binder.registerCustomEditor(String.class, new StringMultipartFileEditor());
}
@RequestMapping(value="/yourRequest.htm", method = RequestMethod.POST)
public String process(@ModelAttribute("yourFormData") YourFormData yourFormData, BindingResult result, SessionStatus status, HttpServletRequest request)
{
String mav = yourInputJsp;
validator.validate(yourFormData, result);
if(!result.hasErrors())
{
//Some business logic
mav = "redirect:yourInputJspSuccess.htm";
status.setComplete();
}
return mav;
}
}
关于java - 使用多 Action Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3565001/