最近我不得不接一个用Spring MVC做的旧项目。这个项目有几个 JSP 页面,通过一个简单的表单插入和更新数据。这些表单的 Controller 在每个 bean 中都定义了一个验证 Controller ,例如:
<!-- Controller to add a Local -->
<bean id="addLocalCtrl" class="cl.bbr.portalweb.web.ctrl.AddLocalCtrl">
<property name="comercio_service" ref="comercioServiceBean"/>
<property name="usuario_service" ref="usuarioServiceBean"/>
<property name="commandName" value="command"/>
<property name="commandClass" value="cl.bbr.portalweb.dto.AddLocalDTO"/>
<property name="validator" ref="addLocalValidator"/>
<property name="formView" value="add_local"/>
<property name="successView" value="redirect:adm_local.htm"/>
<property name="etapa" value="${modelo.etapa}"></property>
</bean>
<!-- Validator Controller -->
<bean id="addLocalValidator" class="cl.bbr.portalweb.web.validator.AddLocalValidator">
<property name="comercio_service" ref="comercioServiceBean"/>
<property name="etapa" value="${modelo.etapa}"></property>
</bean>
validator 类:
public class AddLocalValidator implements Validator {
protected final Log logger = LogFactory.getLog(getClass());
protected ComerciosService comercio_service = null;
private Integer etapa;
public void setComercio_service(ComerciosService comercio_service) {
this.comercio_service = comercio_service;
}
public void setEtapa(Integer etapa) {
this.etapa = etapa;
}
@SuppressWarnings("rawtypes")
public boolean supports(Class addLocalClass) {
return addLocalClass.equals(AddLocalDTO.class);
}
public void validate(Object arg0, Errors arg1) {
AddLocalDTO local = (AddLocalDTO) arg0;
...等等
此项目已托管到 Apache Tomcat 服务器 Apache Tomcat/6.0.37 和 JVM 1.7.0_40-b43。
所有的类和验证 Controller 都以相同的方式编写。
在服务器上一切正常。
问题 是当 我以本地形式测试项目时,Spring 跳过所有验证,我真的不知道为什么。甚至我尝试导出一个新的 WAR 文件并将其上传到服务器和 WALAH!,验证在那里工作。
所以问题是当我在本地主机上运行项目时。
地方特色:
Java 1.8 Tomcat v6.0
最佳答案
在这种情况下我会做的几件事:
- 检查服务器上定义的任何环境变量,您是否在本地计算机上设置了这些变量。
- 尝试从您的日志框架打开调试或跟踪语句。它会给你足够的信息来追踪问题。以下是您的操作方法:
关于java - Spring MVC 跳过 Validator 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42282933/