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

在上一章 struts2 autocompleter 例子,已经了解如何通过java列表,ongl表达生成 autocompleter 选择选项组件列表。另外,也有可能产生通过json数据选择的选择也是如此。

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

在开始之前,请确保您了解autocompleter组件和json插件的基本用法。阅读下面的文章。
  1. struts2 autocompleter示例
  2. struts2 json示例

struts2 autocompleter + json 示例

在本教程中,将使用struts2的json插件将对象转换成json格式,并把它传递给autocompleter组件。

1. 动作

一个类用来转换成json格式,提供autocompleter组件列表的选择选项

databasejson.java

package com.h3.common.action;

import java.util.hashmap;
import java.util.map;

import com.opensymphony.xwork2.action;

public class databasejson{
	
	private map<string, string> databases = new hashmap<string, string>();
	
	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<string, string> getdatabases() {
		return databases;
	}

	public void setdatabases(map<string, string> databases) {
		this.databases = databases;
	}
}

一个正常的action类,只是在做重定向工作和存储autocompleter值。
autocompleteraction.java

package com.h3.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}”链接到autocompleter组件。

<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 
<html>
<head>
<sx:head />
</head>
 
<body>
<h1>struts 2 autocompleter + json example</h1>
 
<s:form action="resultaction" namespace="/" method="post" >

<s:url id="databaselist" action="databasejson" />

<sx:autocompleter label="what's your favorite database server?" 
href="%{databaselist}" name="yourfavdatabase" />
 
<s:submit value="submit" name="submit" />
 
</s:form>
 
</body>
</html>

4. struts.xml

配置操作和json提供如下:

<param name=”root”>databases</param>
这意味着,转换databasejson的数据库属性成json格式,而是整个对象。
<?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="json" namespace="/" extends="json-default">
     	    <action name="databasejson" 
     		class="com.h3.common.action.databasejson">
       	 	<result type="json" >
       	 		<param name="root">databases</param>
       	 	</result>
     	    </action>
  	</package>
	
	<package name="default" namespace="/" extends="struts-default">
	    <action name="autocompleteraction" 
		class="com.h3.common.action.autocompleteraction" 
	        method="display">
		<result name="none">/pages/autocompleter-json.jsp</result>
	    </action>
		 
	    <action name="resultaction" 
	        class="com.h3.common.action.autocompleteraction" >
		<result name="success">/pages/result.jsp</result>
	    </action>
	</package>
		
</struts>

4. 例子

访问url的动作,现在 autocompleter 选择选项是由json数据提供。

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

或者,可以通过以下网址直接访问json数据
http://localhost:8080/strut2autocompleterjson/databasejson.action

{
   "postgresql":"postgresql",
   "mysql":"mysql",
   "others":"others",
   "oracle":"oracle",
   "microsoft sql server":"microsoft sql server",
   "db2":"db2"
}

参数

  1. struts 2 json 插件
  2. json 官方文档
  3. struts 2 autocompleter示例
  4. struts 2 json 示例

代码下载:http://pan.baidu.com/s/1i3o8qzf
所有评论

loading......

滚动到顶部 滚动到底部
合作联系(微信):
www.helper3.com
关于本站:
宗旨
网站备案号:
粤ICP备17073857号-1

声明:
本站部分内容来自网络,如您发现本站内容侵害到您的利益,请联系本站管理员处理。