ダウンロードする – リンク://wp-content/uploads/2010/06/Struts2-textbox-Example.zip[Struts2-textbox-Example.zip]

Struts 2では、

<s:textfield>

を使用してHTML入力テキストボックスを作成できます。たとえば、キーアトリビュートまたはラベルと名前属性を持つ ”

s:textfield

“を宣言できます。

<s:textfield key="username"/>//or
<s:textfield label="Username" name="username"/>

どちらも同じHTML出力を生成します(デフォルトのxhtmlテーマ)。

<td class="tdLabel">
  <label for="registerUser__username" class="label">Username:</label>
</td>
<td>
  <input type="text" name="username" value="" id="registerUser__username"/>
</td>

Struts 2では、「名前」は自動的にJavaBeanプロパティにマップされます。この場合、フォーム提出時に、 “name = ‘username'”のテキストボックス値は、対応するアクションのsetUsername(String xx)を呼び出して値を設定します。

Struts 2 <s:textfield>の例

Struts 2でテキストボックス入力フィールドを作成するためのクイック・ガイド。

1.プロパティファイル

メッセージを格納する2つのプロパティファイル。

#Global messages
username = Username
submit = Submit

  • RegisterAction.properties **

#error message
username.required = Username is required

2.アクション

ユーザー名が空でないことを確認する検証を伴う単純なActionクラス。そうでない場合はエラーメッセージを返します。

  • RegisterAction.java **

package com.mkyong.user.action;

import com.opensymphony.xwork2.ActionSupport;

public class RegisterAction extends ActionSupport{

    private String username;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

   //business logic
    public String execute() {

        return "SUCCESS";

    }

   //simple validation
    public void validate(){
        if("".equals(getUsername())){
            addFieldError("username", getText("username.required"));
        }
    }
}

3.ビューページ

Struts 2 ”

s:textfield

“を使用してHTMLテキストボックス入力フィールドを作成する結果ページ。

  • register.jsp **

<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
</head>

<body>
<h1>Struts 2 - textbox example</h1>

<s:form action="registerUser" namespace="/user">

    <s:textfield key="username"/>
    <s:submit key="submit" name="submit"/>

</s:form>

</body>
</html>

  • welcome.jsp **

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>

<body>
<h1>Struts 2 - textbox example</h1>

<h2><s:property value="username"/></h2>
or
<h2><s:property value="%{username}"/></h2>

</body>
</html>

4. struts.xml

すべて一緒にリンクする〜

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

   <constant name="struts.custom.i18n.resources" value="global"/>
   <constant name="struts.devMode" value="true"/>

   <package name="user" namespace="/user" extends="struts-default">
    <action name="register">
        <result>pages/register.jsp</result>
    </action>
    <action name="registerUser"
                class="com.mkyong.user.action.RegisterAction">
        <result name="SUCCESS">pages/welcome.jsp</result>
        <result name="input">pages/register.jsp</result>
    </action>
   </package>

</struts>

リファレンス

ドキュメンテーション]