あなた.do
の URL パターンは (@Jigar Joshi が言及) であり、マップされている場所を確認するには、ブラウザーで URL を確認する必要があります。
あなたが を持っていると仮定するとhttp://localhost:8080/myapp/login.do
、.do
は Web コンテナによって認識され、Struts Servlet を呼び出しますorg.apache.struts.action.ActionServlet
。
次に、StrutsActionServlet
は相対パスを確認し(/login
私が..do
config
/WEB-INF/struts-config.xml
そこから、StrutsActionServlet
は次のような相対パスに一致するアクション パスがあるかどうかを確認します。
<action path="/login" type="com.myapp.action.LoginAction" name="LoginForm" scope="request">
</action>
それ<action>
が見つかった場合、Struts はcom.myapp.action.LoginAction
クラスを呼び出してexecute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
メソッドを呼び出します (クラスが単純なAction
クラスの場合)。
これが役立つことを願っています。
要素の中に、<action>
と呼ばれる別の要素が見つかる場合があります<forward>
。例:
<forward name="FHome" path="/content/jsp/home.jsp" />
forwardname
属性は基本的に、Struts アクションが を返すときに呼び出すものでActionForward
、次のようなコードです。
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
return mapping.findForward("FHome");
}
要素のforward
内側はローカル転送と呼ばれることに注意してください。グローバルフォワードはエレメントの外に座ります。action
struts-config.xml
action
要素のはpath
、forward
レンダリングするために Struts が呼び出す必要のある jsp ページ (および Web/サーブレット コンテナー) の相対パスです。
これで問題が解決することを願っています。