日期:2014-05-16  浏览次数:20666 次

很简单的ajax,老出错,找不到原因,好几天了
Java code
信息: Exec: searchService2.getSearchResults()
Unknown column 'admin' in 'where clause'
java.lang.NullPointerException
    at com.searcher.service.impl.SearchService2Impl.getSearchResults(SearchService2Impl.java:47)


具体就是有一个登录的页面,表单提交到有AJAX查询后台的页面,点按钮调JS方法。

页面上是这么调的:searchService2.getSearchResults(fillPage);
DWR的配置应该都是正确的,我就是把正确的那个的方法修改了一下;

这个是java的方法,不知道是不是因为我传的参数有问题,但应该可以这样做的吧,我看别人的例子上就是这么用的,dwr.xml文件应该是对的,报错就是System.out.println(name);这行,实在不知道出错的原因。
Java code
public List<SearchResults2> getSearchResults(HttpServletRequest request) {
        
        JDBConnection conn = new JDBConnection();
        List<SearchResults2> list = new ArrayList<SearchResults2>();

        try {
            IndexSearcher searcher = new IndexSearcher(INDEX_STORE_PATH);
            Hits hits = null;
            String item[] = null;

            //HttpSession session = request.getSession();
            //String name = (String) session.getAttribute("name");
            String name = request.getParameter("name");
            System.out.println(name);
            String sql = "select * from user where name like '" +name+"'";
            ResultSet rs = conn.executeQuery(sql);
            System.out.println("......");
            while (rs.next()) {
                String words = rs.getString(3);
                item = words.split("!");
                System.out.println(item);
            }
            for (int i = 0; i < item.length; i++) {
                Query query = makeQuery(item[i]);
                hits = searcher.search(query);

                int length = hits.length();

                for (int j = 1; j <= length && j <= 20; j++) {
                    SearchResults2 results = new SearchResults2();

                    Document doc = hits.doc(j - 1);
                    String pageid = doc.get("pageid");
                    String pagetitle = doc.get("title");
                    String pageurl = doc.get("url");
                    String pagecontent = choose(doc.get("content"), item[i]);

                    results.setId(pageid);
                    results.setTitle(pagetitle);
                    results.setUrl(pageurl);
                    results.setContent(pagecontent);
                    list.add(results);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;
    }

XML code
        <create creator="new" javascript="searchService2">
            <param name="class" value="com.searcher.service.impl.SearchService2Impl" />
        </create>        <convert converter="bean"
            match="com.searcher.bo.SearchResults2">
        </convert>


------解决方案--------------------
你打印出
System.out.println(sql );
不就非常明白是不是SQL语句的问题了????

计算机不会撒谎的,哪里错误计算机报告的是不会有问题的