Www.helper3.com
热门关键字: php net javascript java
Struts2基础 专题
专题目录
您的位置:java > Struts2基础专题 > Struts2 <sx:autocompleter>自动提示例子
Struts2 <sx:autocompleter>自动提示例子
作者:--    发布时间:2019-11-20 10:16:20

在struts2,<sx:autocompleter>标记是一个组合框,当在用户输入文本框会自动提示下拉的提示菜单。

这里创建一个web工程:strut2autocompleter,来演示在多个复选框如何设置的默认值,整个项目的结构如下图所示:

这个功能是通过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"
         class="lazy" data-original="/struts2example/struts/dojo/struts_dojo.js"></script> 
		
<script language="javascript" type="text/javascript"
         class="lazy" data-original="/struts2example/struts/ajax/dojorequire.js"></script> 
		
<link rel="stylesheet" href="/struts2example/struts/xhtml/styles.css" 
type="text/css"/> 

<script language="javascript"  class="lazy" data-original="/struts2example/struts/utils.js" 
type="text/javascript"></script> 

<script language="javascript"  class="lazy" data-original="/struts2example/struts/xhtml/validation.js" 
type="text/javascript"></script> 

<script language="javascript"  class="lazy" data-original="/struts2example/struts/css_xhtml/validation.js" 
type="text/javascript"></script> 
</head> 
...
<tr>
<td class="tdlabel">
<label for="resultaction_yourluckynumber" class="label">
what's your lucky number?:</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>

struts2 <s:autocompleter> 示例

在一个<s:autocompleter>标签的完整的例子,产生下拉的提示菜单,同时在相应的文本框的用户输入。

2. 动作类

action类生成的web框架的选项列表的“autocompleter”组成部分。

autocompleteraction.java

package com.h3.common.action;

import java.util.arraylist;
import java.util.list;

import com.opensymphony.xwork2.actionsupport;

public class autocompleteraction extends actionsupport{

	private list<string> webframeworks = new arraylist<string>();
	
	private string yourfavwebframework;
	private 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("others");
	}
	
	public string getyourluckynumber() {
		return yourluckynumber;
	}

	public void setyourluckynumber(string yourluckynumber) {
		this.yourluckynumber = yourluckynumber;
	}

	public string getyourfavwebframework() {
		return yourfavwebframework;
	}

	public void setyourfavwebframework(string yourfavwebframework) {
		this.yourfavwebframework = yourfavwebframework;
	}

	public list<string> getwebframeworks() {
		return webframeworks;
	}

	public void setwebframeworks(list<string> webframeworks) {
		this.webframeworks = webframeworks;
	}

	public string display() {
		return none;
	}
	
}

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 autocompleter example</h1>

<s:form action="resultaction" namespace="/" method="post" >

<sx:autocompleter label="what's your lucky number?" 
name="yourluckynumber" autocomplete="false"
list="{'1','12','13','14','21','22','23','24',
'31','32','33','34','41','42','43','44'}" />

<sx:autocompleter label="what's your favorite web framework?" 
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 autocompleter example</h1>

<h2>
   lucky number : <s:property value="yourluckynumber"/> 
</h2> 

<h2>
   web appication frameworks : <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">
		
  <action name="autocompleteraction" 
	class="com.h3.common.action.autocompleteraction" 
        method="display">
	<result name="none">/pages/autocompleter.jsp</result>
  </action>
		
  <action name="resultaction" 
        class="com.h3.common.action.autocompleteraction" >
	<result name="success">/pages/result.jsp</result>
  </action>
</package>
	
</struts>

注意:如果静态文件未找到,或是不能打日期选择,请下载代码并参考其中的web.xml配置。

  <filter-mapping>    
       <filter-name>struts2</filter-name>    
       <url-pattern>/struts/*</url-pattern>    
   </filter-mapping> 


4. 示例

http://localhost:8080/struts2example/autocompleteraction.action

下面是另一个例子,说明使用json数据,提供选择选项列表中的autocompleter组件 – struts2 autocompleter + json 示例

参考

  1. struts 2 autocompleter文档
  2. struts 2 ajax and javascript recipes
  3. struts2 combobox示例

滚动到顶部 滚动到底部
网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
QQ群:570078429
网站备案号:
粤ICP备17073857号