struts2里面<action name="" class=""> ,name用register报错
提示Noresultdefinedforactionandresultinput,换个名字就可以了,这命名不能用吗?...
提示No result defined for action and result input,换个名字就可以了,这命名不能用吗?
展开
1个回答
展开全部
配置包时必须指定name属性,该name属性值可以任意取名,但必须唯一,如果其他包要继承该包,必须通过该属性进行引用,包的namespace属性用于定义该包的命名空间,命名空间作用为访问该包下的action路径的一部分,见示例.namespace属性可以不配置,如果不指定该属性,默认的命名空间为””
通常每个包都应该继承struts-default包,因为struts2很多核心功能都是拦截来实现的,如,从请求中把请求参数封闭到action,文件上传和数据验证等都是通过拦截器实现的,struts-default定义了这些拦截器和Result类型,可以这么说,当包继承了struts-default才能使用struts2提供的核心功能,struts-default包是在struts2-core-2.xx.jar文件中的struts-defalut.xml中定义,struts-default.xml也是struts2默认配置文件,struts2每次都会自动加载struts-default.xml文件.
Action 元素method属性,默认值为method=”execute”,也就是当action接收到请求后,交给哪个方法去处理,默认的是交给execute方法去处理,当然,也可以交给其他方法,{1}代表通配符,比如你上面的{1}index,我访问 aaidex,bbindex都能够跳到此控制机器定义的这个方法
<result name="success">/WEB-INF/JspPage/chapter1/HelloWorld.jsp</result>
result元素主要定义视图的跳转和返回的行为及类型、
你定义的indexAction变小写是因为这是为spring接管了,。你spring配置文件中肯定有个bean的id是indexAction,class路径指向包名+类名。
struts.enable.SlashesInActionNames: 该常量设置struts2是否允许action名中使用斜线,该常量的默认值是false。如果希望使用斜线,将该常量值设置成true即可。比如action name="aa/bb"
通常每个包都应该继承struts-default包,因为struts2很多核心功能都是拦截来实现的,如,从请求中把请求参数封闭到action,文件上传和数据验证等都是通过拦截器实现的,struts-default定义了这些拦截器和Result类型,可以这么说,当包继承了struts-default才能使用struts2提供的核心功能,struts-default包是在struts2-core-2.xx.jar文件中的struts-defalut.xml中定义,struts-default.xml也是struts2默认配置文件,struts2每次都会自动加载struts-default.xml文件.
Action 元素method属性,默认值为method=”execute”,也就是当action接收到请求后,交给哪个方法去处理,默认的是交给execute方法去处理,当然,也可以交给其他方法,{1}代表通配符,比如你上面的{1}index,我访问 aaidex,bbindex都能够跳到此控制机器定义的这个方法
<result name="success">/WEB-INF/JspPage/chapter1/HelloWorld.jsp</result>
result元素主要定义视图的跳转和返回的行为及类型、
你定义的indexAction变小写是因为这是为spring接管了,。你spring配置文件中肯定有个bean的id是indexAction,class路径指向包名+类名。
struts.enable.SlashesInActionNames: 该常量设置struts2是否允许action名中使用斜线,该常量的默认值是false。如果希望使用斜线,将该常量值设置成true即可。比如action name="aa/bb"
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询