将文本文件内容加载到textarea中

时间:2013-07-12 11:37:15

标签: java spring jquery

我使用jquery ajax来获取文本文件内容,这里需要显示的文本区域是我的前端代码

function getFileText()
{
var fileName = "fileName.txt";
var data = {
        "fileName" : fileName
         }

$.ajax({
    "dataType": 'json',
    "type": "GET",
    "url": "getFileText.htm",
    "data":data ,
     cache:false,
    success :  function(resp){ 
        alert(resp);
    },
    error : function(XMLHttpRequest, textStatus, errorThrown){
        alert("error");
    }
});
}

<textarea id="fileTextArea" rows="35" cols="250">  </textarea>

这是我的服务器端代码

 public @ResponseBody String getFileText(HttpServletRequest request,HttpServletResponse response) throws IOException{
    String fileName = request.getParameter("fileName");
    String  dirname="D:/java/";
    FileInputStream file = new FileInputStream(new File(dirname+fileName));
    DataInputStream in = new DataInputStream(file);
    BufferedReader br = new BufferedReader(new InputStreamReader(in));
    String strLine;
    StringBuffer str = new StringBuffer();
    //Read File Line By Line
    while ((strLine = br.readLine()) != null)   {
      // Print the content on the console
        str.append(strLine);
        System.out.println(strLine);

    }

    //Close the input stream
    in.close();
    return str.toString();

}

我的filename.txt看起来像

<html>
<body>
    <b> Hi  user </b>,
    <br>
    <p>Welcome to FileText</p>
<body>
</html>

现在,我能够得到响应,但它总是转到ajax调用的错误块并显示解析错误,......“意外的令牌&lt;”

请帮帮我。如何正确地将文本文件内容放入响应中。

4 个答案:

答案 0 :(得分:1)

您应该将dataType更改为texthtml

Datatype你告诉jQuery期待什么样的回应。所以在你的代码中你期待json。

$.ajax({
   "dataType": 'json',

ajax-datatype

找到数据类型和内容类型的一个很好的解释

答案 1 :(得分:0)

<br>没有结束标记。使用<br/>

答案 2 :(得分:0)

您也忘了关闭<body>代码。

<html>
    <body>
        <b> Hi  user </b>,
        <br />
        <p>Welcome to FileText</p>
    </body>
</html>

答案 3 :(得分:-1)

我改变了

$.ajax({
"dataType": 'json',

要       $就({      “dataType”:'text',

现在它正在运作..

谢谢..