谁能给我一个示例,说明如何从jsp中简单地返回以下json,而无需任何外部库(Oracle Java的标准库除外)?
[ {"label":"item 1", "value":"item 1", "id": 1}, {"label":"item 2", "value":"item 2", "id": 2}, {"label":"item 3", "value":"item 1", "id": 3} ];
我试过了
<%-- Set the content type header with the JSP directive --%> <%@ page contentType="application/json" %> <%-- Set the content disposition header --%> <% // Returns all employees (active and terminated) as json. response.setContentType("application/json"); response.setHeader("Content-Disposition", "inline"); %> <%@ page language="java"%> <%@ page import="java.sql.*"%> <%@ page import="java.util.*"%> <%@ page import="java.text.*"%> <%@ page import="javax.servlet.http.*"%> <%@ page import="oracle.apps.fnd.common.WebAppsContext"%> <%@ page import="oracle.apps.fnd.common.WebRequestUtil"%> <%@ page import="oracle.apps.fnd.common.ResourceStore"%> <%@ page import="oracle.apps.fnd.common.VersionInfo"%> [ {"label":"item 1", "value":"item 1", "id": 1}, {"label":"item 2", "value":"item 2", "id": 2}, {"label":"item 3", "value":"item 1", "id": 3} ];
但它似乎不起作用,因为我的jquery自动完成功能不起作用。
这是自动完成代码的一部分:
<html> <head> $(function() { var cust_ac = $("#autocomplete input#cust_input").autocomplete({ source: "xxpay_json_emp.jsp", change: function (event, ui) { alert(ui.item.id); }, width: 500, max: 3000, selectFirst: false, delay: 250, minChars: 3, matchContains: 1, scroll: false, scrollHeight: 200, maxItemsToShow: 20 }); $('#autocomplete').submit(function() { return false; // Cancel submit button on form. }); }); function handleKeyPress(e, form) { var key = e.keyCode || e.which; if (key == 13) { e.cancelBubble = true; e.returnValue = false; } } </script> </head> <body class='fdlbod'> <div style='padding-left : 20px'> <textarea id="holdtext" style="display:none;"></textarea> <form id="autocomplete" name="autocomplete"> <% out.println("Customer Name: "); out.println("<input type='text' value='' name='cust_input' id='cust_input' size='80' onkeypress='handleKeyPress(event,this.form)' />"); %> </form> </div> </body> </html>
您是否尝试过通过网络浏览器自己调用页面?输出是您期望的吗?另外,请使用Firebug或Chrome调试器检查响应标头/有效载荷,并验证所有内容是否正确。
更新, 我想我已将其钉牢-删除该死的分号。