在《spring+mybatis企业应用实战》一书中的几处问题总结

1  使用spring mvc国际化时,因为在jsp在第一次载入的时候中没有引入一个你需要实体类(在Page 88~90页有个loginForm.jsp代码),导致运行时抛出异常:

java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'user' available as request attribute


  1. <h2><spring:message code="title"/></h2>  
  2. <form:form modelAttribute="user" method="post" action="login">  
  3.     <table>  
  4.         <tr>  
  5.             <td><spring:message code="loginname"/></td>  
  6.             <td><form:input path="loginname"/></td>  
  7.         </tr>  
  8.         <tr>  
  9.             <td><spring:message code="password"/></td>  
  10.             <td><form:input path="password"/></td>  
  11.         </tr>  
  12.         <tr>  
  13.             <td><input type="submit" value="<spring:message code="submit"/>"></td>  
  14.         </tr>  
  15.     </table>  
  16. </form:form> 

解决方法 
  1. 在jsp 头部添加<jsp:useBean id="user" class="com.demo.domain.User" scope="request"/>  

配置Spring  @Valid国际化无法映射  在Page 114~119页

message.properties文件中
username.error=\u7528\u6237\u540D\u957F\u5EA6\u5FC5\u987B\u57285-20\u4E4B\u95F4 

mvc-context.xml 文件中

<bean id="validator"
        class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
        <property name="providerClass" value="org.hibernate.validator.HibernateValidator" />
        <!-- 如果不加默认到 使用classpath下的 ValidationMessages.properties -->
        <property name="validationMessageSource" ref="messageSource" />
    </bean>
    
       <bean id="messageSource"   
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">  
         <property name="basenames">
            <list>
                <value>classpath:message</value>
            </list>
        </property>
        <!-- 资源文件编码格式 -->
        <property name="fileEncodings" value="utf-8" />
        <!-- 对资源文件内容缓存时间,单位秒 -->
        <property name="cacheSeconds" value="120" />                
</bean> 
问题描述 :虽然你定义了校验Bean,但还是要告知Spring的,也就是  <mvc:annotation-driven validator="xxxxx">  这个配置,有了这个配置,springMvc才会用你自己定义的处理类

<mvc:annotation-driven/>是告知Spring,我们启用注解驱动。然后Spring会自动为我们注册

HandlerMapping和HandlerAdapter的实现类到工厂中,来处理我们的请求。

解决方法

<!-- SpringMVC配置 -->
  <mvc:annotation-driven conversion-service="conversionService" validator="validator"/>  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值