bootstrap-typeahead.js 实现输入提示实例

1、前台写法:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>输入提示实例</title>
    <link href="CSS/bootstrap.min.css" type="text/css" rel="stylesheet">
</head>
<body>
    <div class="caption">
        <input type="text" class="form-control" placeholder="搜索输入..." id="sensor-search" name="sensor-search"  data-provide="typeahead" autocomplete="off" />                              
        <button class="btn btn-danger form-control" type="button" id="search-con">
        <span class="fa fa-search ">搜索</span>
        </button>          
    </div>
</body>
<script src="JS/jquery.min.js" type="text/javascript"></script>
<script src="JS/bootstrap.min.js" type="text/javascript"></script>
<script src="JS/bootstrap-typeahead.js" type="text/javascript"></script>
<script>
$('#sensor-search').typeahead(
                        {
                            source : function(query, process) {
                                var parameter = {
                                    query : query
                                    };
                                $.post('prompt.action',     //第一个参数为调用的action,parameter为用户输入的数据,data为返回的提示数据。
                                        parameter, function(data) {
                                            var array = null;
                                            array = data.split(",");
                                            process(array); //process中传入数组
                                        });
                                }
 });
</script>

2、action写法:

@SuppressWarnings("serial")
public class PromptAction extends ActionSupport{
	private static final Logger log = LoggerFactory.getLogger(PromptAction.class);
    private CollectionDataDaoImp adi = BeanFactoryUtil.getImpl(CollectionDataDaoImp.class);
    //实例化DaoImp
    private String query;
    private InputStream inputStream;
    
	public String getQuery() {
		return query;
	}
	public void setQuery(String query) {
		this.query = query;
	}
	
	public InputStream getInputStream() {
		return inputStream;
	}
	public void setInputStream(InputStream inputStream) {
		this.inputStream = inputStream;
	}
	public String execute() throws   UnsupportedEncodingException{
		
		log.info("传入参数:"+query);
		List<String> ad = adi.findHD(query);
		StringBuffer str = new StringBuffer();
		for(String a:ad){
			str.append(a+",");
		}		
		log.info("返回的输入相关提示:"+str.toString());
		inputStream = new ByteArrayInputStream(str.toString().getBytes("UTF-8"));
		return SUCCESS;		
	}    	
}

3、其他工具类:

public class BeanFactoryUtil {
	private static Properties props = new Properties();
	static {
		// 1,读取配置文件,只需要一次
		InputStream in = BeanFactoryUtil.class.getClassLoader().getResourceAsStream("BeanFactory.properties"); //properties中存储CollectionDataDaoImp = cn.ict.data.dao.imp.CollectionDataDaoImp 内容
		try {
			props.load(in);
		} catch (Exception e) {
			throw new RuntimeException(e);
		} finally {
			if (in != null) {
				try {
					in.close();
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
		}
	}
	/**
	 * 获取指定接口对应的实现类实例
	 * 
	 * @param key
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public static <T> T getImpl(Class<T> clazz) {
		try {
			// 2,获取key对应的value,就是实现类的全限定名
			String key = clazz.getSimpleName(); // key是接口的简单名称
			String className = props.getProperty(key);
			// 3,生成实例并返回
			return (T) Class.forName(className).newInstance();
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
	<!-- 开启使用开发模式,详细错误提示 -->
	<constant name="struts.devMode" value="false" />
	<!-- 指定每次请求到达,重新加载资源文件 -->
	<constant name="struts.i18n.reload" value="true" />
	<!-- 指定每次配置文件更改后,自动重新加载 -->
	<constant name="struts.configuration.xml.reload" value="true" />
	<!-- 指定XSLT Result使用样式表缓存 -->
	<constant name="struts.xslt.nocache" value="true" />
	
	<constant name="struts.i18n.encoding" value="UTF-8" />
    
	<package name="prompt" namespace="/" extends="json-default">
        <action name="prompt" class="cn.ict.data.webservice.SensorPromptAction">
 		<result name="success" type="stream">
 			<param name="contentType">text/html</param>
			<param name="inputName">inputStream</param>
		</result>
	</action>				
    </package>
</struts>

 

转载于:https://my.oschina.net/u/2478308/blog/732683

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Cloud Config中,有几种常见的配置文件,包括`bootstrap.yml`、`bootstrap-dev.yml`和`bootstrap-local.yml`。这些配置文件具有不同的优先级和用途。 1. `bootstrap.yml`是用于获取外部配置的特殊配置文件,它的加载优先级比其他配置文件(如`application.yml`或`application.properties`)更高[^1]。它主要用于加载一些启动阶段需要用到的配置信息,例如连接到Spring Cloud Config Server的配置、加密/解密信息、连接到外部数据库的配置等。由于这些配置信息在应用程序启动的早期阶段就需要用到,所以放在`bootstrap.yml`中确保它们在其他配置之前加载。此外,`bootstrap.yml`不会被本地配置文件覆盖,它的优先级更高,确保这些关键配置的安全性和准确性。 2. `bootstrap-dev.yml`是`bootstrap.yml`的一个特定的开发环境profile,用于在开发环境下加载特定的外部配置信息。在开发环境中,可能需要与生产环境不同的配置,例如连接到不同的数据库、使用不同的服务地址等。通过使用`bootstrap-dev.yml`可以轻松地区分开发环境和其他环境的配置。当在开发环境启动应用程序时,Spring Cloud Config将会加载`bootstrap.yml`和`bootstrap-dev.yml`的配置,并根据当前激活的profile(如通过`spring.profiles.active`属性指定)加载对应的配置。 3. `bootstrap-local.yml`是一个自定义的本地配置文件,用于加载本地环境下的特定配置信息。它的优先级比`bootstrap.yml`和`bootstrap-dev.yml`更高,可以用于覆盖这两个文件中的配置。通过使用`bootstrap-local.yml`,可以在本地环境中加载特定的配置,例如本地数据库的连接信息、本地服务的地址等。 综上所述,`bootstrap.yml`具有最低的优先级,用于加载一些启动阶段需要用到的配置信息。`bootstrap-dev.yml`是用于开发环境的特定配置文件,用于加载开发环境下的配置。`bootstrap-local.yml`是一个自定义的本地配置文件,用于加载本地环境下的特定配置信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值