首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSP中的GWT AutoSuggest

JSP中的GWT AutoSuggest
EN

Stack Overflow用户
提问于 2011-03-20 14:19:37
回答 2查看 749关注 0票数 0

我想在JSP中添加一个GWT自动提示文本框。

有人能提供一些关于这方面的见解吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-20 15:56:29

通常,GWT被认为是不同于widget框架的web应用程序框架。就我个人而言,我会认为GWT太重了,不能只在一个简单的网页上添加一个自动提示,而是使用像jQuery autocomplete这样的东西。

话虽如此,运行GWT代码并没有什么神奇之处。遵循GWT标准模块布局,只需将JSP页面设置为GWT host page,将路径更改为编译模块的绝对路径即可。

票数 1
EN

Stack Overflow用户

发布于 2011-12-16 00:30:45

这里有一个例子,说明了我是如何让一个建议框工作的。当用户键入时,我对数据库进行了RPC调用。

我同意您可以在jQuery中做类似的事情,但是当GWT有小部件可用时,您为什么要这样做呢?

希望这能有所帮助!

代码语言:javascript
复制
vendorSuggestBox = new SuggestBox(new SuggestionOracle()); //client package

public class SuggestionOracle extends SuggestOracle { //shared package

public boolean isDisplayStringHTML() {
    return true;
}

@SuppressWarnings("unchecked")
public void requestSuggestions(Request request, Callback callback) {
    ItemMovementRemoteServiceAsync service=GWT.create(ItemMovementRemoteService.class);
    service.getVendors(request, new SuggestionCallback(request,callback));
}

@SuppressWarnings("unchecked")
class SuggestionCallback implements AsyncCallback {
    private SuggestOracle.Request req;
    private SuggestOracle.Callback callback;

    public SuggestionCallback(SuggestOracle.Request _req, SuggestOracle.Callback _callback) {
        req=_req;
        callback=_callback;
    }

    public void onFailure(Throwable caught) {
        callback.onSuggestionsReady(req, new SuggestOracle.Response());
    }

    public void onSuccess(Object result) {
        callback.onSuggestionsReady(req, (SuggestOracle.Response) result);
    }

}



public SuggestOracle.Response getVendors(Request req) { //server package
    Connection db=null;
    PreparedStatement ps=null;
    ResultSet rs=null;
    SuggestOracle.Response resp = new SuggestOracle.Response();
    List<Suggestion> suggestions=new ArrayList<Suggestion>();
    int count=0;

    try {
        db=Database.open("ACM0");
        ps=db.prepareStatement(
            " SELECT VE_CD,upper(VE_NAME) VE_NAME" +
            " FROM AP.VE_WEB " +
            " WHERE (VE_NAME NOT LIKE 'AC Moore%') " +
            "   AND (lower(VE_NAME) LIKE ? OR VE_CD LIKE ?)" +
            " ORDER BY VE_NAME");
        ps.setString(1, "%"+req.getQuery().toLowerCase()+"%");
        ps.setString(2, "%"+req.getQuery().toLowerCase()+"%");
        rs=ps.executeQuery();
        while(rs.next() && count < 25) {
            suggestions.add(new ASuggestion(rs.getString("VE_NAME").trim()+"-"+rs.getString("VE_CD").trim()));
            count++;
        }
        resp.setSuggestions(suggestions);
    } catch (Exception ex) {
        ex.printStackTrace();
    } finally {
        Database.close(db);
    }
    return resp;
}



public class ASuggestion implements IsSerializable, Suggestion { //shared package model object

private String s;

public ASuggestion(){}
public ASuggestion(String s) {
    this.s=s;
}

public String getDisplayString() {
    return s;
}

public String getReplacementString() {
    return s;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5367091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档