82.struts的validate最简单实现
1.首先准备好错误提示信息。
xxx.properties 里
errors.required={0} is required.(默认已有)
2.Form必须从ValidatorForm继承
3.不可以重载ValidatorForm的validate函数
4.在validate.xml中为你想验证的表单进行验证设计。例如
depends="required">
(该参数将在显示错误信息是从xxx.properties读取prompt.userName,填入{}方括号里,取代0。如果是arg1将将填入{1}位置,以此类推。
不需要在action里做任何处理。只管forward就行了。作为forward的目标页,不需要任何有关用于处理出错信息的处理。
depends="required">
(该参数将在显示错误信息是从xxx.properties读取prompt.userName,填入{}方括号里,取代0。如果是arg1将将填入{1}位置,以此类推。
不需要在action里做任何处理。只管forward就行了。作为forward的目标页,不需要任何有关用于处理出错信息的处理。
83.服务器报
The requested resource (/xxxx/xxx.htm) is not
available.的很奇怪的一个的可能原因
在web.xml中定义的tld,没有找到
或者是lib目录下的包太多出现了问题。
如
/spring
/WEB-INF/spring.tld
如WEB-INF目录下不存在spring.tld的话,就会报上边的错误
84.
spring的xxx-servlet.xml的使用SimpleFormController系列的类问题:
class="PriceIncreaseFormController">
name="sessionForm">true
name="beanName">priceIncrease
name="commandClass">PriceIncrease
name="formView">priceIncrease
name="successView">hello
name="productManager">
这里要注意几个问题:
(1)上边的PriceIncrease是了类名,必须在classes里存在该类,否则报:
PropertyVetoExceptionsException: 1 errors:--
ErrorCodedPropertyVetoException: message=[Failed to convert
property value of type [java.lang.String] to required type
[java.lang.Class] for property named 'commandClass'; nested
exception is:
java.lang.IllegalArgumentException: Invalid class name
[PriceIncrease]: PriceIncrease]; errorCode=[typeMismatch]
java.lang.IllegalArgumentException: Invalid class name
[PriceIncrease]: PriceIncrease
(2)
name="formView">priceIncrease
这一行必不可少,priceIncrease是页面的名字,他将会是prefix + priceIncrease +
suffix
如果缺少该行,则报:
javax.servlet.ServletException: Error in ModelAndView object or
View resolution encountered by servlet with name 'pocketSpring':
View to render cannot be null with ModelAndView [ModelAndView:
materialized View is [null];
Model=[{priceIncrease=PriceIncrease@148e798,
org.springframework.validation.BindException.priceIncrease=org.springframework.validation.BindException:
BindException: 0 errors}]]
使用Errors的rejectValue相关问题:
rejectValue(java.lang.String field, java.lang.String errorCode,
java.lang.Object[] errorArgs, java.lang.String
defaultMessage)
Reject the given field of the current object, using the given error
description.
当前对象指的是xxx-servlet.xml中与validator类有联系的哪个对象。
第一个是:当前对象的属性名,必须存在
第二个是:将要从属性文件中读取的消息
第三个是:传递给所读取的消息的参数,如:
error.too-low=You have to specify a percentage higher than
{0}!
第四个是:当从属性文件中读取消息不成功时,所reject的值
以后从request中读取parameter可以借用spring的RequestUtils包里的
getStringParameter
public static java.lang.String
getStringParameter(javax.servlet.http.HttpServletRequest
request,
&bsp; java.lang.String name,
java.lang.String defaultVal)
Get a string parameter, with a fallback value. Never throws an
exception. Can pass a distinguished value to default to enable
checks of whether it was supplied.
不会抛异常
Hibernate的问题:2.1rc的问题
INFO: cache provider: net.sf.ehcache.hibernate.Provider
net.sf.hibernate.HibernateException: could not instantiate
CacheProvider:
解决办法,2.1rc比以前的版本多需要一个包
ehcache.jar
85.static的问题
static函数只可以访问static成员变量。
而static变量可以被任何成员函数访问。
86.
java.lang.NoClassDefFoundError:
javax/transaction/Synchronization];
需要添加JTA.jar