我想知道是否有人可以提供帮助。我正在组装一个 Spring Webflow 应用程序,并试图弄清楚如何进行验证。
根据文档http://static.springsource.org/spring-webflow/docs/2.0.x/reference/html/ch04s10.html我创建了一个符合 ${model}Validator 名称模式的验证器类并使用符合 validate${state} 的方法名称
// validation method for About You
public void validateAboutYou(QB2MotorQuote p_quote, ValidationContext p_ctx) {
MessageContext messages = p_ctx.getMessageContext();
// mandatory checks ...
mandatoryChecks_AboutYou(p_quote, messages);
// field format/content validation checks ...
formatChecks_AboutYou(p_quote, messages);
}
如上面的代码所示,我调用了 2 个方法来执行强制检查,然后是格式检查。
这工作正常 - 当页面被提交时,SWF 调用验证类 - 非常好:)
我现在想做的是通过 ajax 调用 formatChecks_AboutYou(p_quote, messages) 方法。当用户模糊每个字段时,我想触发一个 ajax 请求来验证该字段,从而拥有我所有的验证代码和规则服务器端。
我找不到任何关于如何使用 SWF 的文章。我用标准的 Spring MVC 应用程序做了一些非常相似的事情,我的控制器上有一个请求映射,专门用于 ajax 验证。这样做的好处是控制器已经引用了验证器,并且数据已经绑定到表单支持对象。
但我不确定如何使用 SWF 来解决这个问题。我暂时尝试了为 ajax 验证编写控制器的想法:
@Controller
public class AjaxController {
@Autowired
private QuoteValidator m_validator;
@RequestMapping(value="/AjaxValidate", method=RequestMethod.GET)
public String ajaxValidate(HttpServletRequest p_req, Model p_model) {
// controller has access to validate via autowired m_validate
// but the method signature I want to call is:
// formatChecks_AboutYou(QB2MotorQuote p_quote, MessageContext p_messages)
// Don't know where to get a MessageContext from
return "ajaValidate";
}
}
我可以从客户端调用它没问题,但我怀疑数据会绑定到命令对象,而且我不确定从哪里获取 MessageContext 对象。
如果有人可以提供帮助,我将不胜感激;干杯
弥敦道