Struts 2オートコンプリートの例
ダウンロードする – リンク://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.デモ


JSON
データを使用してリストを提供する別の例を次に示します
オートコンプリート
コンポーネントへの選択オプションの –
Struts 2
オートコンプリート+ JSONの例
。
===リファレンス