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 Excel发现不可读取的内容
  • ¥15 UE5#if WITH_EDITOR导致打包的功能不可用
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真
  • ¥15 mars2d在vue3中的引入问题
  • ¥50 h5唤醒支付宝并跳转至向小荷包转账界面
  • ¥15 算法题:数的划分,用记忆化DFS做WA求调
  • ¥15 chatglm-6b应用到django项目中,模型加载失败
  • ¥15 CreateBitmapFromWicBitmap内存释放问题。