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

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

ダウンロード–Struts2-AutoCompleter-JSON-Example.zip

最後のStruts 2 autocompleterの例では、JavaリストとONGL式を使用して、オートコンプリーターコンポーネントの選択オプションのリストを生成する方法について学習します。 Alternatively, it’s possible to generate the select options via JSON data as well.

先に進む前に、autocompleterコンポーネントとJSONプラグインの基本的な使用法を理解していることを確認してください。 以下の記事を読んでください。

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

このチュートリアルでは、Struts 2 JSON pluginを使用してオブジェクトをJSON形式に変換し、それをautocompleterコンポーネントに渡します。

1. 依存関係ライブラリを取得する

すべての依存ライブラリを取得します。

pom.xml

    
    
          org.apache.struts
      struts2-core
      2.1.8
    

    
    
          org.apache.struts
      struts2-dojo-plugin
      2.1.8
    

    
    
          org.apache.struts
      struts2-json-plugin
      2.1.8
    

2. アクション

選択オプションのリストをautocompleterコンポーネントに提供するために、後でJSON形式に変換するクラス。

DatabaseJSON.java

package com.example.common.action;

import java.util.HashMap;
import java.util.Map;

import com.opensymphony.xwork2.Action;

public class DatabaseJSON{

    private Map databases = new HashMap();

    public DatabaseJSON(){
        databases.put("MySQL", "MySQL");
        databases.put("Oracle", "Oracle");
        databases.put("PostgreSQL", "PostgreSQL");
        databases.put("Microsoft SQL Server", "Microsoft SQL Server");
        databases.put("DB2", "DB2");
        databases.put("Others", "Others");
    }

    public String execute() {
                return Action.SUCCESS;
    }

    public Map getDatabases() {
        return databases;
    }

    public void setDatabases(Map databases) {
        this.databases = databases;
    }
}

リダイレクト作業を実行し、オートコンプリーター値を格納するだけの通常のActionクラス。
AutoCompleterAction.java

package com.example.common.action;

import com.opensymphony.xwork2.ActionSupport;

public class AutoCompleterAction extends ActionSupport{

    private String yourDatabase;

    public String display() {
        return NONE;
    }

    public String getYourDatabase() {
        return yourDatabase;
    }

    public void setYourDatabase(String yourDatabase) {
        this.yourDatabase = yourDatabase;
    }

}

3. 結果

ここで少し注意が必要です。「s:url」タグポイントを使用して「databaseJSON」アクションを指定すると、オプションのリストがJSON形式で返されます。 そして、href=”%{databaseList}”を介してオートコンプリートコンポーネントにリンクします。

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







Struts 2 autocompleter + JSON example

4. struts.xml

アクションおよびJSONプロバイダーを次のように構成します。

<param name=”root”>databases</param>
つまり、DatabaseJSONのデータベースプロパティをJSON形式に変換しますが、オブジェクト全体を変換します。





    

    
            
            
                databases
            
            
    

    
        
        pages/autocompleter-json.jsp
        

        
        pages/result.jsp
        
    

4. Demo

アクションURLにアクセスすると、オートコンプリーターの選択オプションがJSONデータによって提供されます。

Struts 2 AutoCompleter JSON example

または、次のURLを介してJSONデータに直接アクセスすることもできます
http://localhost:8080/Struts2Example/databaseJSON.action

{
   "PostgreSQL":"PostgreSQL",
   "MySQL":"MySQL",
   "Others":"Others",
   "Oracle":"Oracle",
   "Microsoft SQL Server":"Microsoft SQL Server",
   "DB2":"DB2"
}