このStrutsテキストボックスの例をダウンロードする –

Struts-TextBox-Example.zip

このStrutsの例では、Struts

<html:text>

タグでHTMLテキストボックス入力フィールドを作成し、

ActionForm

でテキストボックスを検証し、

ActionErrors

でエラーメッセージを表示し、メッセージリソースJSPページで

1.フォルダ構造

これはMavenによって作成された最終的なプロジェクト構造です。対応するフォルダを作成してください。


Struts-text-box-folder、title = "Struts-text-box-folder"

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つの方法で表示されます。

  1. すべてのエラーメッセージを表示する

    
    

  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>

それにアクセスする


Struts-text-box-example1、title = "Struts-text-box-example1"

ユーザーがテキストボックスに記入せずに「送信」ボタンを押すと、エラーメッセージが表示されます。


Struts-text-box-example2、title = "Struts-text-box-example2"

ユーザーがテキストボックスに入力し、送信ボタンを押した場合。


Struts-text-box-example3、title = "Struts-text-box-example3"

テキストボックスの入力値をウェルカムページに渡して表示します。


Struts-text-box-example4、title = "Struts-text-box-example4"