您有一个参数字段,
int但已
String在URL
中将其设置为。为了消除这种错误,您需要在拦截器之前(或之后)放置一些拦截
params器以检查该值。例如,您放置了
validation拦截器。
@Action(value = "youraction", results = { @Result(location = "/path/to/page.jsp"),}, interceptorRefs = {@InterceptorRef("validation"), @InterceptorRef("basicStack")})那么你需要
validate()在动作中实现工具
public void validate() {}最后补充一点,将处理错误的方法 也 很好的效果,所以OGNL不会抱怨
public void setId(String id) { try { this.id = Integer.parseInt(id); } catch (NumberFormatException nfe){}}仅此而已,您也不再例外,并且
String在设置器中检查了类型参数。
问题:如果参数解析不正确,则
0该
execute()方法中的值将为。因此,您决定要返回什么结果。您还可以检查
validate()方法中的值(如果
validation放置在
params拦截器之后)或
GenericValidator.isInt在拦截器之后进行解析,
setFieldError()然后在JSP中显示它或在验证后立即重定向。



