Struts的版本是2.06,总结一下项目使用中碰到的问题,以备查用。这些错误大多数是人为的。
1、No result defined for action ***Action and result success
这个错误产生的原因是,在struts.xml中配置没有配置success result。我的理解是action执行完后,必须产生一个result类。这个类可是servlet或是其他,但不能为空。
解决方法:增加result success定义。
<result>***.jsp</result>
2、No result defined for action ***Action and result input
这个错误,在提交数据时经常碰到。定义的struts2 intercept发挥了作用,当POJO类型与输入的类型不同时,intercept类会中止拦截,并返回输入页面。详细的错误可在使用<s:fielderror/>来获取。
解决方法:增加resut input定义。
<result name="input">***.jsp</result>
3、There is no Action mapped for namespace / and action name ***Action
可以直译为没有找到这个action,也就是说在struts.xml中没有定义这个action。这个错误一般是action的名字拼写错误造成的,请仔细检查struts.xml的定义与页面的acrion是否一致。
4、Class ognl.OgnlRuntime can not access a member of class ***Action with modifiers "private"
关键字是"private",action类中的字段为private,这样页面(如jsp)是无法访问到的,这也是struts2面向对象的一大特征。
解决方法:
在action中添加set get方法,这样struts会自访问这个方法。set get方法必须遵循bean的标准写法。
5、Exception starting filter struts2
未定变义struts-default。也package中加入extends="struts-default"
1、No result defined for action ***Action and result success
这个错误产生的原因是,在struts.xml中配置没有配置success result。我的理解是action执行完后,必须产生一个result类。这个类可是servlet或是其他,但不能为空。
解决方法:增加result success定义。
<result>***.jsp</result>
2、No result defined for action ***Action and result input
这个错误,在提交数据时经常碰到。定义的struts2 intercept发挥了作用,当POJO类型与输入的类型不同时,intercept类会中止拦截,并返回输入页面。详细的错误可在使用<s:fielderror/>来获取。
解决方法:增加resut input定义。
<result name="input">***.jsp</result>
3、There is no Action mapped for namespace / and action name ***Action
可以直译为没有找到这个action,也就是说在struts.xml中没有定义这个action。这个错误一般是action的名字拼写错误造成的,请仔细检查struts.xml的定义与页面的acrion是否一致。
4、Class ognl.OgnlRuntime can not access a member of class ***Action with modifiers "private"
关键字是"private",action类中的字段为private,这样页面(如jsp)是无法访问到的,这也是struts2面向对象的一大特征。
解决方法:
在action中添加set get方法,这样struts会自访问这个方法。set get方法必须遵循bean的标准写法。
5、Exception starting filter struts2
未定变义struts-default。也package中加入extends="struts-default"