为了账号安全,请及时绑定邮箱和手机立即绑定

关于form表单里的action和配置文件里的action

老师,为什么在form表单里

>,而在配置文件里却是没有.action的后缀???

正在回答

3 回答

接着三楼,struts.xml配置文档里  标签<constant>也是可以拓展限制请求路径的后缀的

0 回复 有任何疑惑可以回复我~

一楼的回答大体意思是对的,就是说的不清楚。其实关键是对运行机制的理解,StrutsPrepareAndExecuteFilter作为struts2的核心,会根据web.xml中配置的mapping对文件进行过滤。如果是过滤所有文件(/*),那么form中的action的值加不加.action的后缀都是可以的,因为都会被StrutsPrepareAndExecuteFilter过滤到struts.xml中;但是如果只过滤.action文件(<url-pattern>*.action</url-pattern>),那么form中的action的值就必须添加.action后缀,否则不会被StrutsPrepareAndExecuteFilter过滤,导致404错误。

0 回复 有任何疑惑可以回复我~

form表单里的action表示表单提交处理的控制器,或者叫方法,struts的控制器后缀默认是.action,所以带有,web.xml里的struts过滤器过滤了所有(/*),所以,就算在表单的action属性里只写控制器名称,不写.action也可以,默认寻找配置文件里,相同名称的控制器

配置文件配置控制器和相关属性的,带后缀做什么呢?<action name="" class="" method=""></action>,name属性的值就是前端表单action属性要提交的控制器的名称,是定义名称,不是调用控制器

0 回复 有任何疑惑可以回复我~
#1

Refactor易先生

<action name="">不写.action,经测试会报404错误。
2016-02-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于form表单里的action和配置文件里的action

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信