jQuery.Autocomplete 与struts2的整合
2011-04-22 23:36
169 查看
需要做一个text的自动提示功能,于是翻翻jquery 的书,看了一个叫做autocomplete的插件,决定试一试怎么使用.上google搜索了一下插件(开始搜索的是山寨版本的,导致自己的ajax无法调用action,那个郁闷啊).最后还是去jquery的官网上,下载了demo和源码.闲话不说,开始写代码:
1.html页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>Auto Complete 4.1 (backwards compatible file)</title>
<script type='text/javascript' src='js/jquery-1.4.2.js'></script>
<script type='text/javascript' src='js/jquery.autocomplete.js'></script>
<link rel='stylesheet' type='text/css' href='style/jquery.autocomplete.css' />
<script type='text/javascript'>
$(document).ready(function()
{
$("#queryCon").autocomplete("autoComplete.action",
{
minChars: 1,
max:5,
width: 150,
matchContains: true,
autoFill: false,
//如果需要另外传值给action的话可以用这样的方式,如果只是把input里面的值传递给action的话,可以不写
extraParams:
{
queryCon: function()
{
return $("#queryCon").val();
}
},
//进行对返回数据的格式处理
parse: function(test)
{
//content为我action里面定义的值
data = test.content;
var rows = [];
for(var i=0; i<data.length; i++)
{
rows[rows.length] =
{
//我没有特殊的要求,所以三个写的一样
data:data[i],
value:data[i],
//result里面显示的是要返回到列表里面的值
result:data[i]
};
}
return rows;
},
formatItem:function(item)
{
//我没有特殊的要求,直接返回了
return item;
}
});
});
</script>
</head>
<body>
<input type='text' style='width: 300px;' id='queryCon'
name="queryCon" />
<input type='submit' value="All Values" />
</body>
</html>
2.action部分
package com.training.util;
import java.util.LinkedList;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import com.opensymphony.xwork2.ActionSupport;
import com.training.hibernate.User;
public class AutoCompleteAction extends ActionSupport {
private List<String> content;
public List<String> getContent() {
return content;
}
public void setContent(List<String> content) {
this.content = content;
}
private String queryCon;
public void setQueryCon(String queryCon) {
this.queryCon = queryCon;
}
public String getQueryCon() {
return queryCon;
}
@Override
public String execute() throws Exception {
//回出现中文乱码传值的问题,所以需要再编码
,不过很奇怪,我写了filter了,不知道为什么还需要这样
queryCon = new String(queryCon.getBytes("ISO-8859-1"), "UTF-8");
Session session = HibernateSessionFactory.getSession();
Query query = session
.createQuery("select name from User as user where user.name like ? ");
query.setString(0, this.queryCon + "%");
List<String> list = query.list();
this.setContent(list);
session.close();
return SUCCESS;
}
}
3.struts.xml
<package name="login" extends="json-default">
<action name="autoComplete" class="com.training.util.AutoCompleteAction">
<result type="json"/>
</action>
</package>
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huangxu0311/archive/2010/04/28/5539413.aspx
1.html页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>Auto Complete 4.1 (backwards compatible file)</title>
<script type='text/javascript' src='js/jquery-1.4.2.js'></script>
<script type='text/javascript' src='js/jquery.autocomplete.js'></script>
<link rel='stylesheet' type='text/css' href='style/jquery.autocomplete.css' />
<script type='text/javascript'>
$(document).ready(function()
{
$("#queryCon").autocomplete("autoComplete.action",
{
minChars: 1,
max:5,
width: 150,
matchContains: true,
autoFill: false,
//如果需要另外传值给action的话可以用这样的方式,如果只是把input里面的值传递给action的话,可以不写
extraParams:
{
queryCon: function()
{
return $("#queryCon").val();
}
},
//进行对返回数据的格式处理
parse: function(test)
{
//content为我action里面定义的值
data = test.content;
var rows = [];
for(var i=0; i<data.length; i++)
{
rows[rows.length] =
{
//我没有特殊的要求,所以三个写的一样
data:data[i],
value:data[i],
//result里面显示的是要返回到列表里面的值
result:data[i]
};
}
return rows;
},
formatItem:function(item)
{
//我没有特殊的要求,直接返回了
return item;
}
});
});
</script>
</head>
<body>
<input type='text' style='width: 300px;' id='queryCon'
name="queryCon" />
<input type='submit' value="All Values" />
</body>
</html>
2.action部分
package com.training.util;
import java.util.LinkedList;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import com.opensymphony.xwork2.ActionSupport;
import com.training.hibernate.User;
public class AutoCompleteAction extends ActionSupport {
private List<String> content;
public List<String> getContent() {
return content;
}
public void setContent(List<String> content) {
this.content = content;
}
private String queryCon;
public void setQueryCon(String queryCon) {
this.queryCon = queryCon;
}
public String getQueryCon() {
return queryCon;
}
@Override
public String execute() throws Exception {
//回出现中文乱码传值的问题,所以需要再编码
,不过很奇怪,我写了filter了,不知道为什么还需要这样
queryCon = new String(queryCon.getBytes("ISO-8859-1"), "UTF-8");
Session session = HibernateSessionFactory.getSession();
Query query = session
.createQuery("select name from User as user where user.name like ? ");
query.setString(0, this.queryCon + "%");
List<String> list = query.list();
this.setContent(list);
session.close();
return SUCCESS;
}
}
3.struts.xml
<package name="login" extends="json-default">
<action name="autoComplete" class="com.training.util.AutoCompleteAction">
<result type="json"/>
</action>
</package>
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huangxu0311/archive/2010/04/28/5539413.aspx
相关文章推荐
- jQuery.Autocomplete与struts2的整合
- jQuery.Autocomplete与struts2的整合
- Struts2 整合jQuery实现Ajax功能
- Struts2 整合jQuery实现Ajax功能(1)
- jQuery.validate.js插件使用(struts2的整合)
- jquery AutoComplete 插件与struts2集成
- jquery autocomplete前后台整合实例(1)
- Struts2整合jQuery和JSON进行简单的异步数据交换入门教程
- 整合框架 javaweb开发平台ssmy_m(与代码生成) java struts2 mybatis spring maven jquery
- Struts2整合jQuery实现ajax异步登录
- struts2 json 与jquery整合实现ajax,用户注册校验
- struts2、spring、hibernate整合jquery的json传值接收值的两种方式
- Struts2整合jQuery实现Ajax功能-IE与firefox的区别
- jquery-validform 与 Struts2 整合 实时验证,重设传递参数格式
- Struts2整合jQuery实现ajax异步登录
- 整合struts2 jQuery validate 插件的远程Ajax验证
- Struts2 整合jQuery实现Ajax功能(2)
- Struts2 整合jQuery实现Ajax功能(1)
- 整合struts2,jquery,json。采用jquery ajax,从struts2 action返回json类型数据
- Jquery 与 struts2 fckeditor 的整合