在struts-config中我有这样的动作:
<action
path="/action/basket"
type="com.xxx.BasketAction"
name="basketForm"
scope="session"
unknown="false"
validate="false"
>
<forward
name="displayItems"
path="EshelfItems"
redirect="false"
/>
<forward
name="displayItems-redirect"
path="/action/basket.do?fn=display"
redirect="true"
/>
<forward
name="displayBasket"
path="/basket.jsp"
redirect="false"
/>
</action>
我可以在哪里找到/action/basket.do?fn=display
的映射?
答案 0 :(得分:0)
根据http://struts.apache.org/1.x/faqs/works.html:
在框架配置文件中,您将路径与 应用程序的控制器组件,称为Action类 (即“login”==&gt; LoginAction类)。这告诉了ActionServlet 对于传入请求'http://myhost/myapp/login.do'它应该 调用你的控制器组件LoginAction。
请注意此网址中的扩展名.do。扩展导致你的 容器(即Tomcat)调用ActionServlet,它看到了这个单词 “登录”是你想要做的事情。参考配置, 并执行您的LoginAction。
检查BasketAction
类检查fn=display
请求参数的位置。
如果找不到给定映射的动作类,那么调试你的
RequestProcessor's process方法也很有用。
答案 1 :(得分:0)
雅你的问题不明确..
当您点击/action/basket.do?fn=display
时,它将在您的struts配置中使用以下映射。
<action
path="/action/basket"
然后它将执行
com.xxx.BasketAction
并且在该类中,如果您需要,您可以阅读参数fn=display
,然后执行转发,这将在您的struts配置的<forward>...</forward>
映射中映射