Bootstrap Search Suggest 官方说明文档如下:suggest说明文档
由于该文档没有详细说明怎么运用到实际的项目中,特别是怎么将数据库中的值显示到页面上,所以我再运用到项目中,遇到了很多的坑,为了大家更好使用该插件,也为了自己总结下所遇到的坑,特总结如下
一、项目框架
1.后台:spring+springmvc+mybatis
2.前台: bootstrap+jQuery+ajax
3.项目管理:maven
二、前台代码
1.html代码
<div class="content nav-version"> <table class="detail" style="margin-bottom:12px;"> <tr><td class="first-col"> <div class="row"> <div class="col-lg-12"> <div class="input-group" style="width: 100%; height: 17px; display: -webkit-box;"> <label style="margin-left: 13px;">用户名称:</label> <input id="userName" type="text" style="height: 22px;" /> <div class="input-group-btn"> <button type="button" class="btn btn-default dropdown-toggle"data-toggle="dropdown"> <span class="caret"></span> </button> <ul class="dropdown-menu dropdown-menu-right" role="menu"></ul> </div> </div> </div> </div> </td></tr> </table> </div>
2,js代码,主要有2个js文件,一个是autoLoad.js,一个是bootstrap-suggest.js,autoLoad.js文件主要用于配置属性,bootstrap-suggest.js是系统文件
autoLoad.js代码如下:
(function() {
$("#userName").bsSuggest({
url: contextUrl +'/user/getuserName"userName", "shortAccount"],
searchFields: [ "shortAccount"],*/
/* data: {
userName: $("#userName").val()
}, */
effectiveFieldsAlias:{userName: "分类名称名称"},//有效字段别名
allowNoKeyword: false, // 是否允许无关键字时请求数据
ignorecase: true,//忽略大小写
showHeader: false,//显示 header
showBtn: false, //不显示下拉按钮
delayUntilKeyup: true, //获取数据的方式为 firstByUrl 时,延迟到有输入/获取到焦点时才请求数据
idField: "userName",
keyField: "userName"
}).on('onDataRequestSuccess', function (e, result) {
console.log('onDataRequestSuccess: ', result);
}).on('onSetSelectValue', function (e, keyword, data) {
console.log('onSetSelectValue: ', keyword, data);
}).on('onUnsetSelectValue', function () {
console.log("onUnsetSelectValue");
});
}());
bootstrap-suggest.js,autoLoad.js 代码,由于代码太多,给出下载地址,主要修改了2个地方,一个是
var ajaxParam = {
type: 'POST',
dataType: options.jsonp "keyword":keyword}//添加data,用于post传递数据
};
另一个是,listStyle,添加了位置信息
listStyle: {
'position':'relative',
'margin-left':'-206px',
'margin-top':'26px',
'padding-top': 0,
'max-height': '375px',
'max-width': '800px',
'overflow': 'auto',
'width': 'auto',
'transition': '0.3s',
'-webkit-transition': '0.3s',
'-moz-transition': '0.3s',
'-o-transition': '0.3s'
},
三、controller层代码
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value="/getUserName",method = RequestMethod.POST)
@ResponseBody
public String getUserName(HttpServletRequest request,HttpServletResponse response){
String userName = request.getParameter("keyword");
String userNameList = userService.getUserName(userName);
return userNameList;
}
}
四、service层和实现层代码
public interface UserService {
String getUserName(String userName);
}
/**
* @author 李光光(编码小王子)
* @Email 826331692@jd.com
* @date 2016年12月19日 下午4:18:45
* @version 1.0
*/
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public String getUserName(String userName) {
String json="{\"message\": \"\",\"value\": [";
// if(!userName.isEmpty()){
List<String> list = userDao.getUserName(userName);
if(list != null && !list.isEmpty()){
for(int i=0;i<list.size;i++){
json+="{"+"\"userName\":"+"\""+list.get(i)+"\"" +"},";
}
json = json.substring(0,json.length()-1>0"],\"code\": 200,\"redirect\": \"\"}";
return json;
}else{
json+="],\"code\": 400,\"redirect\": \"\"}";
return json;
}
}
}
五、dao层代码
public interface UserDao {
List<String> getUserName(@Param("userName")String userName);
}
六mapper层代码
<"1.0" encoding="UTF-8" "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace=".....dao.UserDao" >
<!--根据输入的用户名类名查询相似的用户名 -->
<select id="getUserName" resultType="String">
select distinct userName
from user_table
where yn=1
<if test="userName != null and userName != ''">and userName like concat (#{userName},'%')</if>
limit 0,10
</select>
</mapper>
至此整个代码就完成了,效果如下
如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:
Bootstrap学习教程
Bootstrap实战教程
Bootstrap Table使用教程
Bootstrap插件使用教程
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
