GWT:如何从servlet返回纯文本?

Dav*_*ave 8 gwt

我正在使用GWT 2.4.我有一个表单,我在其中创建一个提交按钮

    private Button createSaveButton() { 
            final Button saveButton = new Button("Save"); 
            saveButton.getElement().setAttribute("name", SaveXmlServlet.SAVE_BUTTON_PARAM_NAME); 
            saveButton.addClickHandler(new ClickHandler() { 
                    @Override 
                    public void onClick(ClickEvent event) { 
                            formPanel.submit(); 
                    } 
            }); 
            return saveButton; 
    }       // createSaveButton 
Run Code Online (Sandbox Code Playgroud)

我为这样的表单定义了一个onComplete处理程序

            formPanel.addSubmitCompleteHandler(new SubmitCompleteHandler() { 
                    @Override 
                    public void onSubmitComplete(SubmitCompleteEvent event) { 
                            Window.alert(event.getResults()); 
                    } 
            }); 
Run Code Online (Sandbox Code Playgroud)

我提交表单的servlet以纯文本形式返回结果.

            res.setContentType("text/plain"); 
            final PrintWriter out = res.getWriter(); 
            out.print(saveSucceeded); 
            out.close(); 
Run Code Online (Sandbox Code Playgroud)

但是,当我实际执行警报时,它会将"<pre>"标记附加到输出.例如,如果servlet输出"true",则提醒用户的是"<pre> true </ pre>".如何只输出写入响应的内容?我可以做一些字符串操作来删除"<pre>"标签,但这似乎我没有解决核心问题.谢谢, - 戴夫

Mar*_*ila 10

还有另一种解决方案 - 将内容类型设置为text/html.


Str*_*lok 8

我不认为你可以做任何事情,但没有奇怪的文本操作很容易解决:

public String getPlainTextResult(SubmitCompleteEvent event) {
  Element label = DOM.createLabel();
  label.setInnerHTML( event.getResults() );
  return label.getInnerText();
}
Run Code Online (Sandbox Code Playgroud)

  • HTML html = new HTML(event.getResults()); return html.getText(); 更容易 (2认同)