【发布时间】:2013-11-25 19:19:28
【问题描述】:
我有一个带有如下链接的 JSP 文件:
<a href="links.do?method=homeAdmin">
<a href="links.do?method=signUp">
我有一个动作类LinkAction.java:
public class LinkAction extends org.apache.struts.action.Action {
public ActionForward signUp(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
return mapping.findForward("signUp");
}
public ActionForward homeAdmin(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
return mapping.findForward("homeAdmin");
}
}
问题是它不起作用。但是当我把它改成这样的时候,它只适用于signUp 动作。
public class LinkAction extends org.apache.struts.action.Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
return mapping.findForward("signUp");
}
}
我也试过改成
public class LinkAction extends DispatchAction { ... }
这是我的struts-config.xml
<action input="/index.jsp"
name="signUp"
path="/links"
scope="session"
type="Actions.LinkAction">
<forward name="signUp" path="/signUp.jsp"/>
<forward name="homeAdmin" path="/homeAdmin.jsp"/>
</action>
我想对我网页中的所有链接使用这个单一的操作文件。我该怎么做?
【问题讨论】:
-
您能在
struts-config.xml中分享操作定义吗?。 -
我认为您只需要在
struts-config.xml中添加一些内容并使用扩展类org.apache.struts.actions.DispatchAction的操作。