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

Struts 2では、

<sx:autocompleter>

タグはコンボボックスで、ユーザーがテキストボックスに入力中に提案リストを自動的にドロップダウンします。

この機能はdojoライブラリで実装されていますので、依存ライブラリとして ”

struts2-dojo-plugin.jar

“を含め、ページ上部に ”

struts-dojo-tags

“タグを入れてヘッダ情報を出力してください

<sx:head/>

を介して

例えば、

<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
<html>
<head>
<sx:head/>
</head>
<body>
<sx:autocompleter label="What's your lucky number?"
name="yourLuckyNumber" autoComplete="false"
list="{'1','12','13','14'}"/>

その結果、次のHTML

<html>
<head>
<script language="JavaScript" type="text/javascript">
   //Dojo configuration
    djConfig = {
        isDebug: false,
        bindEncoding: "UTF-8"
          ,baseRelativePath: "/Struts2Example/struts/dojo/"
          ,baseScriptUri: "/Struts2Example/struts/dojo/"
         ,parseWidgets : false

    };
</script>
<script language="JavaScript" type="text/javascript"
        src="/Struts2Example/struts/dojo/struts__dojo.js"></script>

<script language="JavaScript" type="text/javascript"
        src="/Struts2Example/struts/ajax/dojoRequire.js"></script>

<link rel="stylesheet" href="/Struts2Example/struts/xhtml/styles.css"
type="text/css"/>

<script language="JavaScript" src="/Struts2Example/struts/utils.js"
type="text/javascript"></script>

<script language="JavaScript" src="/Struts2Example/struts/xhtml/validation.js"
type="text/javascript"></script>

<script language="JavaScript" src="/Struts2Example/struts/css__xhtml/validation.js"
type="text/javascript"></script>
</head>
...

<tr>
<td class = "tdLabel">
<label for = "resultAction__yourLuckyNumber" class = "label">
あなたの幸運な数字は?:</label> </td>
<td>
<select dojoType = "struts:ComboBox" id = "resultAction__yourLuckyNumber"
autoComplete = "false" name = "yourLuckyNumber"
keyName = "yourLuckyNumberKey" visibleDownArrow = "true">
    <option value = "1"> 1 </option>
    <option value = "12"> 12 </option>
    <option value = "13"> 13 </option>
    <option value = "14"> 14 </option>
</select>
</td>
</tr>
<script language = "JavaScript" type = "text/javascript">
djConfig.searchIds.push( "resultAction__yourLuckyNumber"); </script>

Struts 2 <s:autocompleter>例

1. pom.xml

Struts 2 dojo依存関係ライブラリをダウンロードしてください。

  • pom.xml **

//...

<! -  Struts 2  - > <dependency> <groupId> org.apache.struts </groupId> <artifactId> struts2コア</artifactId> <version> 2.1.8 </version> </dependency> <! -  Struts 2 Dojo Ajaxタグ - > <dependency> <groupId> org.apache.struts </groupId> <artifactId> struts2-dojo-plugin </artifactId> <version> 2.1.8 </version> </dependency >//...

2. Action class

Action class to generate a list of the web frameworks options to the


autocompleter

” component.

  • AutoCompleterAction.java**

パッケージcom.mkyong.common.action;

import java.util.ArrayList; import java.util.List;

import com.opensymphony.xwork2.ActionSupport;

パブリッククラスAutoCompleterActionはActionSupport {

プライベートリスト<String> webframeworks = new ArrayList <String>();プライベートString yourFavWebFramework;プライベートString yourLuckyNumber; public AutoCompleterAction(){webframeworks.add( "Spring MVC"); webframeworks.add( "Struts 1.x"); webframeworks.add( "Struts 2.x"); webframeworks.add( "JavaServer Faces(JSF)"); webframeworks.add( "Google Web Toolkit(GWT)"); webframeworks.add( "Apache Wicket"); webframeworks.add( "Apache Click"); webframeworks.add( "Apache Cocoon"); webframeworks.add( "JBoss Seam"); webframeworks.add( "Stripes"); webframeworks.add( "Apache Tapestry"); webframeworks.add( "その他"); } public String getYourLuckyNumber(){あなたのLuckyNumberを返します。 }

public void setYourLuckyNumber(String yourLuckyNumber){this.yourLuckyNumber = yourLuckyNumber; }

public String getYourFavWebFramework(){return yourFavWebFramework; }

public void setYourFavWebFramework(String yourFavWebFramework){this.yourFavWebFramework = yourFavWebFramework; }

パブリックリスト<String> getWebframeworks(){return webframeworks; }

public void setWebframeworks(List <String> webframeworks){this.webframeworks = webframeworks; }

public String display(){
        戻り値なし。
    }
    
}

3.結果ページ



<s:autocompleter>

“タグを使用して ”

autocompleter

“コンポーネントをレンダリングし、
JavaのリストとOGNLを使用して自動ドロップダウンの提案リストを生成します。

  • autocompleter.jsp **

<%@ taglib prefix = "s" uri = "/struts-tags"%> <%@ taglib prefix = "sx" uri = "/struts-dojo-tags"%>

<html> <head> <sx:head/> </head>

<body> <h1> Struts 2オートコンプリートの例</h1>

<s:form action = "resultAction" namespace = "/" method = "POST">

<sx:autocompleter label = "あなたのラッキーナンバーは?" "12"、 '13'、 '14'、 '21'、 '22'、 '23'、 '24'、 '31'、 ' '32'、 '33'、 '34'、 '41'、 '42'、 '43'、 '44'} "/>

<sx:autocompleter label = "あなたのお気に入りのWebフレームワークは何ですか?" list = "webframeworks" name = "yourFavWebFramework"/>

<s:submit value = "submit" name = "submit"/> </s:form>

</body>
</html>

  • result.jsp **

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

<body> <h1> Struts 2オートコンプリートの例</h1>

<h2>ラッキーナンバー:<s:プロパティ値= "yourLuckyNumber"/> </h2>

<h2> Web App Framework:<s:property value = "yourFavWebFramework"/> </h2>

</body>
</html>

3. 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.devMode" value = "true"/>
    
<package name = "default" namespace = "/" extends = "struts-default">
        
  <アクション名= "autoCompleterAction"
    class = "com.mkyong.common.action.AutoCompleterAction"
        method = "display">
    <result name = "none">ページ/autocompleter.jsp </result>
  </action>
        
  <アクション名= "resultAction"
        class = "com.mkyong.common.action.AutoCompleterAction">
    <result name = "success"> pages/result.jsp </result>
  </action>
</package>
    
</struts>

4.デモ


Struts 2オートコンプリートの例、title = "Struts2-AutoCompleter-Example-1"


Struts 2オートコンプリートの例、title = "Struts2-AutoCompleter-Example-2"


JSON

データを使用してリストを提供する別の例を次に示します

オートコンプリート

コンポーネントへの選択オプションの –

Struts 2
オートコンプリート+ JSONの例

===リファレンス