#topicpath ---- #contents **fowardするだけ [#q3d9c061] まずは基本。フォワードするだけ。 <action-mappings> <action path="/index" forward="/WEB-INF/jsp/index.jsp" /> </action-mappings> と記述しておくことで、 http://hogehoge/[path]/index.do というURLでindex.jspへアクセス可能となります。直接JSPを指定したくない場合に用いられますね。そもそもWEB-INF内のJSPには直接アクセスできないですし。 **formを定義する [#tc0aa38b] <form-beans> <form-bean name="LoginForm" type="org.apache.struts.validator.DynaValidatorForm"> <form-property name="userId" type="java.lang.String" /> <form-property name="pass" type="java.lang.String" /> </form-bean> </form-beans> ... <action-mappings> <action path="/login" forward="/WEB-INF/jsp/index2.jsp" name="LoginForm" /> </action-mappings> と記述しておきます。画面(JSP)では <html:form action="/login" focus="userId" method="post"> <div id="errmsg"><html:errors /></div> <table border="0" class="center"> <tr> <td width="20%" align="right">ユーザID</td> <td align="left"><html:text property="userId" styleClass="inputStrImeDisabled" size="40" maxlength="20" tabindex="1" /></td> </tr> <tr> <td width="20%" align="right">パスワード</td> <td align="left"><html:password property="pass" styleClass="inputStrImeDisabled" size="42" maxlength="40" tabindex="2" redisplay="false" /></td> </tr> <tr> <td><br /> </td> </tr> <tr> <td width="20%"></td> <td align="left"> <html:submit property="loginButton" value="ログイン" styleClass="fButtons" tabindex="3" /></td> </tr> </table> <html:hidden property="url" /> </html:form> としておくことで、テキストボックス付きのformになります((上のJSPにアクセス時に、/loginのaction-mappingにformがちゃんと(name属性で)定義されているかをチェックしているので注意しましょう。))。まだ/login(つまりindex2.jsp)にフォワードするだけですが。 次はいよいよアクションをかませます。 **アクションを呼び出す [#wfd617f6] 上の定義の <action path="/login" forward="/WEB-INF/jsp/index2.jsp" name="LoginForm" /> を <action path="/login" type="nu.mine.kino.actions.LoginAction" name="LoginForm" > <forward name="success" path="/WEB-INF/jsp/index2.jsp" /> </action> に変更します。すると遷移先がアクションクラスとなり、アクションクラス内で遷移先を制御することになります。たとえばアクションクラスを以下のようにしました。 package nu.mine.kino.actions; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; public class LoginAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // TODO Auto-generated method stub System.out.println("hogehoge"); return mapping.findForward("success"); <-forward nameのsuccessにあわせてある } } 書き途中! **つづき [#vcf1ca16] Struts/ActionのTIPS集2 ---- この記事は #vote(おもしろかった[17],そうでもない[7]); #topicpath SIZE(10){現在のアクセス:&counter;}