<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>My JSP 'MyJsp.jsp' starting page <- 点我弹出日期控件 工号: 姓名:
/** * 自动补全 * @return * @throws Exception */ public String autocomplete() throws Exception { HttpServletResponse response = ServletActionContext.getResponse(); Liststaffs = null; String n = request.getParameter("staffStaffName"); if (BaseUtil.isEmpty(getStaffCode())) { staffs = staffService.findByPropertyauto("staffCode", getStaffCode().trim()); } if (BaseUtil.isEmpty(n)) { String name = new String(n.getBytes("ISO-8859-1"),"UTF-8"); staffs = staffService.findByPropertyauto("staffStaffName", name.trim()); } if (BaseUtil.isEmptyList(staffs)) { List autoStaffs = new ArrayList (); for (Staff staff : staffs) { autoStaffs.add(new AutoStaff(staff.getStaffPid(), staff.getStaffCode(), staff.getStaffStaffName())); } Gson gson = new Gson(); String result = gson.toJson(autoStaffs); response.setContentType("text/json;charset=utf-8"); response.setHeader("Chache=Control", "no-cache"); PrintWriter outWriter = response.getWriter(); outWriter.print(result); outWriter.flush(); outWriter.close(); } return SUCCESS; }
result
web控制层struts2
工号: 姓名:
通过工号的自动补全可获取staffCode、staffStaffName、staffPid(隐藏Id),
通过姓名的自动补全可获取也可以获取staffCode、staffStaffName、staffPid(隐藏Id)。
巧妙的应用在于:
.result (function(event, data, formatted) { $("#staffId").val(data.staffPid); $("#staffCode").val(data.staffCode); });
.result (function(event, data, formatted) { $("#staffId").val(data.staffPid); $("#staffStaffName").val(data.staffStaffName); });
一看就明白怎么回事了,就不多说了。
中文问题也一并解决了:
String n = request.getParameter("staffStaffName"); String name = new String(n.getBytes("ISO-8859-1"),"UTF-8");
至于页面的编码统一一下就可以了。