为什么struts2项目配置文件struts.xml中sction和java类不能带后缀
为什么struts2项目配置文件struts.xml中sction和java类不能带后缀.带了后缀为什么会报错!为什么这样会出错呢?<actionname="get.ac...
为什么struts2项目配置文件struts.xml中sction和java类不能带后缀.带了后缀为什么会报错!
为什么这样会出错呢?
<action name="get.action" class="fwl.Get_txt.java">
这样就不会呢?
<action name="get" class="fwl.Get_txt"> 展开
为什么这样会出错呢?
<action name="get.action" class="fwl.Get_txt.java">
这样就不会呢?
<action name="get" class="fwl.Get_txt"> 展开
2个回答
展开全部
(1)name属性是用来做映射的,通过它找到执行的action和method。
对于name属性,明确的说法是默认不允许出现斜杠(/),如果出现斜杠,则要配置 struts.enable.SlashesInActionNames =true(默认是false),可以出现点(.),但是尽量不要出现点(.)或者其他连接符(-),如果出现你在做请求时,也要做相应的改变,最好不要用,不然会报各种想不到错误。
(2)struts2里面的所有类都是由ObjectFactory构造的(在不使用Spring或者其它IOC容器),其实就是用了反射,所以在action标签里配的class属性需要的是类名,也就是这个类的完整路径。所以class属性必须没有.java后缀,如果有.java后缀,就会生成不了这个类的实例。
其实另外一种简单的理解方法是,class属性其实找的是编译后的类,而.java是编译前的源文件,明显不能使用.java后缀。
对于name属性,明确的说法是默认不允许出现斜杠(/),如果出现斜杠,则要配置 struts.enable.SlashesInActionNames =true(默认是false),可以出现点(.),但是尽量不要出现点(.)或者其他连接符(-),如果出现你在做请求时,也要做相应的改变,最好不要用,不然会报各种想不到错误。
(2)struts2里面的所有类都是由ObjectFactory构造的(在不使用Spring或者其它IOC容器),其实就是用了反射,所以在action标签里配的class属性需要的是类名,也就是这个类的完整路径。所以class属性必须没有.java后缀,如果有.java后缀,就会生成不了这个类的实例。
其实另外一种简单的理解方法是,class属性其实找的是编译后的类,而.java是编译前的源文件,明显不能使用.java后缀。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询