我在試 JSP 輸出 JSON, 想接JQuery 的自動完成的外掛
可是
似乎WebLogic Server 7.0 被我弄到當掉了
因為我這邊的主機上的JSP是跑 JavaSE 1.4 所以要倒著回去用舊版的Java語法去寫, 有點小難
com.data.toolkit.SafeSql 與 com.data.toolkit.JsonUtil 算是自己改寫過的心得吧?
公布如下
http://www.player.idv.tw/prog/index.php/JsonUtil.java
http://www.player.idv.tw/prog/index.php/SafeSql.java
編譯好成 class檔後, 放到 \WEB-INF\classes\com\data\toolkit\ 目錄中
最後的實驗品是 AutoComplete.jsp
輸入 name 與 q 當傳入參數
自Oracle中取出幾個字串後
以JSON方式傳回
<%@ page contentType="application/json; charset=big5" %>
<%@ /*業務機密, 這行page import 略 */ %>
<%@ page import="java.sql.*, java.util.*, java.lang.*" %>
<%@ page import="com.data.toolkit.SafeSql, com.data.toolkit.JsonUtil" %>
<%
String strName = request.getParameter("name");
String strQ = request.getParameter("q");
if (strQ != null)
{
//業務機密, 取得Oracle資料庫連線方式的這行略 qub=?
StringBuffer sql = new StringBuffer();
String strKeyName = "";
//需求編號, reqNoQ
if (strName == "reqNoQ")
{
strKeyName = "reqno";
}
if (strKeyName != "")
{
sql.append("select * from ( ");
sql.append("select distinct ");
sql.append(strKeyName);
sql.append(" from tb_request where ");
sql.append(strKeyName);
sql.append(" like ");
sql.append(SafeSql.QuoteLikeRight(strQ));
sql.append(" order by ");
sql.append(strKeyName);
sql.append(" ) where ROWNUM >= 0 AND ROWNUM <= 20");
ArrayList v = qub.executeQuery(sql.toString());
StringBuffer responseText = new StringBuffer();
responseText.append('[');
if (!v.isEmpty())
{
boolean IsComma = false;
for(int i=0;i<v.size();i++)
{
HashMap hm = (HashMap)v.get(i);
if (hm.containsKey(strKeyName))
{
if (IsComma == true) {
responseText.append(',');
IsComma = true;
}
responseText.append(JsonUtil.string2Json(hm.get(strKeyName)));
}
}
}
responseText.append(']');
response.getWriter().print(responseText.toString());
}
else
{
response.getWriter().print("[]");
}
}
%>
此外
關於
http://kekeke.cc/twjug
不知為何
要貼任何字都貼不上了
天曉得是哪邊擋到了?