- PR -

AjaxTagsについて

1
投稿者投稿内容
shum
会議室デビュー日: 2006/02/21
投稿数: 5
投稿日時: 2006-10-17 01:35
AjaxTagsを利用してajax:autocompleteタグを使い、オートコンプリートを実現しようとしています。
入力データが半角英数字であれば、オートコンプリートできるのですが、
日本語の場合はオートコンプリートが実現できません。

サーバサイドにおいて日本語のリクエストパラメーターを取得できていないのが原因のようです。
日本語をパラメータで渡すと「null」になってしまい取得することができません。
文字化けなら、文字コードがおかしいのではと、思うのですが、化けではなくnullとなります。

環境は以下のとおりです。
ajaxtags-1.1.5
prototype.js 1.3.1
Tomcat5.5
Eclipse 3.2

JSPソースコード
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="ajax" uri="http://ajaxtags.org/tags/ajax"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="css/ajaxtags-sample.css" />
<title>Insert title here</title>
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/ajaxtags-1.1.5.js"></script>
</head>
<body>
<form action="aaa.jsp"><input type="text" id="pname" name="pname"
class="form-autocomplete" /></form>

<ajax:autocomplete target="pname" source="pname"
baseUrl="./AutoCompleteServlet" className="autocomplete"
parameters="pname={pname}" progressStyle="throbbing" minimumCharacters="2"></ajax:autocomplete>
</body>
</html>

サーブレットソースコード
public class AutoCompleteServlet extends BaseAjaxServlet implements
javax.servlet.Servlet {
/*
* (non-Java-doc)
*
* @see javax.servlet.http.HttpServlet#HttpServlet()
*/
public AutoCompleteServlet() {
super();
}

public String getXmlContent(HttpServletRequest request,
HttpServletResponse response) throws Exception {

request.setCharacterEncoding("UTF-8");
System.out.println(request.getParameter("pname"));

AjaxXmlBuilder builder = new AjaxXmlBuilder();
PersonBeanDAO dao = DaoFactory.createPersonBeanDao();
PersonBean person = null;
Iterator<PersonBean> iterator = dao.provideName(true,
request.getParameter("pname")).iterator();
while (iterator.hasNext()) {
person = iterator.next();
builder.addItem(person.getPname(), person.getPname());
}
return builder.toString();
}
}

ご教授お願いします。
shum
会議室デビュー日: 2006/02/21
投稿数: 5
投稿日時: 2006-10-17 21:33
ajaxtagsのバージョンを1.2Beta2にすれば解決できました。
安定版では、マルチバイトコードをParameterで受取る方法を見つけることができませんでした。
JavaScriptがもっと読めれば、もう少しわかったかもしれません。

お騒がせしました。
1

スキルアップ/キャリアアップ(JOB@IT)