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

时间:2011-11-29 21:15:05

标签: 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 

我为表单定义了一个onComplete处理程序,如此

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

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

            res.setContentType("text/plain"); 
            final PrintWriter out = res.getWriter(); 
            out.print(saveSucceeded); 
            out.close(); 

但是,当我实际执行警报时,它会附加“< pre>”标签到 输出。例如,如果servlet输出“true”,那么是什么 警告用户是“< pre> true< / pre>”。我怎么才能得到这个 输出写入响应的内容?我可以做一些字符串 操纵以删除“< pre>”标签,但似乎我不是 解决核心问题。 谢谢, - 戴夫

3 个答案:

答案 0 :(得分:10)

another solution - 将内容类型设置为text/html

答案 1 :(得分:8)

我认为你不能对此做任何事情,但如果没有奇怪的文字操作,它很容易解决:

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

答案 2 :(得分:1)

response.setContentType("text/plain; charset=ISO-8859-2");

在输出之前尝试这个。希望它有所帮助。