Struts テキストボックスの例
このStrutsテキストボックスの例をダウンロードする –
Struts-TextBox-Example.zip
このStrutsの例では、Struts
<html:text>
タグでHTMLテキストボックス入力フィールドを作成し、
ActionForm
でテキストボックスを検証し、
ActionErrors
でエラーメッセージを表示し、メッセージリソースJSPページで
1.フォルダ構造
これはMavenによって作成された最終的なプロジェクト構造です。対応するフォルダを作成してください。
2.アクションクラス
Actionクラスを作成し、要求を転送するだけです。
package com.mkyong.common.action; 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 UserAction extends Action{ public ActionForward execute(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) throws Exception { return mapping.findForward("success"); } }
3.プロパティファイル
プロパティファイルを作成し、エラーメッセージとラベルメッセージを宣言します。
-
Common.properties **
#common module error message error.common.name.required = Name is required. #common module label message label.common.name = UserName label.common.button.submit = Submit label.common.button.reset = Reset
4. ActionForm
ActionFormを作成し、ユーザー名を受け入れてvalidate()メソッドで検証します。ユーザー名が空の場合は、上記のプロパティー・ファイルからエラー・メッセージを取得し、それをActionErrorsのキー「
common.name.err
」として追加し、後でこの名前「
common.name.err
」を使用してJSPのエラーメッセージ。
-
UserForm.java **
package com.mkyong.common.form; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; public class UserForm extends ActionForm{ String username; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } @Override public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { ActionErrors errors = new ActionErrors(); if( getUsername() == null || ("".equals(getUsername()))) { errors.add("common.name.err", new ActionMessage("error.common.name.required")); } return errors; } @Override public void reset(ActionMapping mapping, HttpServletRequest request) { //reset properties username = ""; } }
5. JSPページ
HTMLテキストボックス入力フィールドを作成するには、StrutsのHTMLタグ
<html:text>
を使用します。ラベルメッセージは上記のプロパティファイルで宣言されています。
<bean:message key = “label__name”/>
を介して直接取得できます。
エラーメッセージは、次の2つの方法で表示されます。
-
すべてのエラーメッセージを表示する
-
指定されたエラーメッセージを表示するには、エラーメッセージキーを指定します.
ActionErrorsで宣言されています。
-
login.jsp **
Struts html:text example :
テキストボックス入力を表示します。
welcome.jsp
Welcome
6. struts-config.xml
Struts設定ファイルを作成してリンクします。
アクションタグの属性:
-
path =アクセスするウェブパス
-
type =あなたのアクションクラス
-
name =あなたの行動様式
-
validate = trueを指定すると、ActionFormは
フォーム検証
** 入力=検証が偽の場合、どこに転送するか?
-
struts-config.xml ** ファイルにプロパティファイルを含めて、Strutsが独自のリソースメッセージを認識できるようにする必要があります。
<message-resources parameter="com.mkyong.common.properties.Common"/>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://jakarta.apache.org/struts/dtds/struts-config__1__3.dtd"> <struts-config> <form-beans> <form-bean name="userForm" type="com.mkyong.common.form.UserForm"/> </form-beans> <action-mappings> <action path="/LoginPage" type="org.apache.struts.actions.ForwardAction" parameter="/pages/login.jsp"/> <action path="/Login" type="com.mkyong.common.action.UserAction" name="userForm" validate="true" input="/pages/login.jsp" > <forward name="success" path="/pages/welcome.jsp"/> </action> </action-mappings> <message-resources parameter="com.mkyong.common.properties.Common"/> </struts-config>
7. web.xml
最後のステップでは、Strutフレームワークの統合用にweb.xmlを作成します。
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app__2__3.dtd" > <web-app> <display-name>Maven Struts Examples</display-name> <servlet> <servlet-name>action</servlet-name> <servlet-class> org.apache.struts.action.ActionServlet </servlet-class> <init-param> <param-name>config</param-name> <param-value> /WEB-INF/struts-config.xml </param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>** .do</url-pattern> </servlet-mapping> </web-app>
それにアクセスする
ユーザーがテキストボックスに記入せずに「送信」ボタンを押すと、エラーメッセージが表示されます。
ユーザーがテキストボックスに入力し、送信ボタンを押した場合。
テキストボックスの入力値をウェルカムページに渡して表示します。