qdgyj 2009-10-15 10:29
浏览 232
已采纳

关于struts2中action 的!匹配

我的ACTION中有doInput,doSave,doDelete等方法,配置文件如下
[code="java"]
/WEB-INF/jsp/login.jsp
/WEB-INF/jsp/save.jsp
/WEB-INF/jsp/delete.jsp
[/code]

但是当jsp页面中有action比如login!save的时候 就报错,说找不到login!save这个action

这个怎么解决?

我看别人写的配置文件中不用把action写成 name="login!*" method="{1}" 这样的吧?

谢谢了

这里用的是struts2.1.8 Filter是StrutsPrepareAndExecuteFilter

难道是codebehind的问题?
[b]问题补充:[/b]
还是不行啊,报
There is no Action mapped for namespace / and action name login!doSave.
这个错
[b]问题补充:[/b]
sunlightcs:
这种方法我已经试过了,是可以的。

我是想知道有多种方法的action,它的定义都要像

这样?

  • 写回答

9条回答 默认 最新

  • CaiHuajiang 2009-10-16 01:55
    关注

    在 WebWork2 中,可以使用感叹号(!)来指定要执行(或调用)非 execute 方法,但是还没有一个真正的术语该种方式的定义。在 s2 的讨论中,我们定义了“动态方法调用”这个术语来描述 webwork/s2 对感叹号的使用。

    动态方法调用( DMI )通过在 action 名称和要调用的 Action 方法之间添加一个感叹号进行分割,以表示调用 action 中指定的方法(非 exeucte 方法)。如:“ Category ! create.action ”,表示调用 Category Action 中定义的 create 方法。

    在 Struts2 中,让动态方法调用可配置,有两个原因: 1 )如果使用的是 POJO action ,动态方法调用可能会引起安全问题; 2 )动态方法调用和从 Struts 1 中引用过来的通配符方法有重叠;如果你的应用涉及到安全,或者习惯在 action 配置中使用感叹号作为通配符的话,需要在 struts 应用的 struts.properties 配置文件中将 struts.enable.DynamicMethodInvocation 设置为 false 。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

悬赏问题

  • ¥15 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?