如何在另一个textarea中将textarea显示为HTML代码?

时间:2016-04-30 23:46:25

标签: html forms jsp servlets

我正在开发JSP / Servlet网站。我在JSP页面中有一个表单,它调用Servlet进行一些处理,然后将结果反馈回Same JSP页面。 表单有textarea,它从用户那里获取HTML代码,我使用语法高亮工具为textarea格式化textarea中的代码。

问题是当我在更新页面后保留textarea的值时,如果输入的代码包含textarea元素,它将嵌套textarea的结束标记呈现为父textarea的结束标记。我以这种方式保留了价值:

var text = ["0h2abe1zy"]
var decode = function () {
  for(var i=0; i < text.length; i++) {
    if (text[i]!==isNaN){
      console.log( )
    };
  };
};

以下是发生的事情的示例:

如果用户在textarea中输入此内容,则所有内容都会正确保留:

<textarea rows="30" cols="80" id="txtArea" name="txtArea" 
placeholder="Enter your code" >${param.txtArea}</textarea>

但是,如果用户输入:

    <form >
        <label for="name">Your name:</label><br />
        <input id="name" type="text" />
        <input id="submit_button" type="submit" value="Send email" />
</form>

它将保留这些行:

<form >
            <label for="name">Your name:</label><br />
            <input id="name" type="text" />
            <textarea id="message" class="input" name="message" rows="7" cols="30"></textarea>
            <input id="submit_button" type="submit" value="Send email" />
    </form>

关闭textarea标签,之后的所有内容都不会保留在textarea中。并呈现为HTML代码。任何人都可以帮我找到保留用户输入的所有内容的方法吗?或者如何转义textarea的第一个结束标记?

3 个答案:

答案 0 :(得分:0)

我建议您使用javascript为文本区域元素指定所需的值。见下面的例子。

请注意,您可能需要转义引号。你可以用java或javascript来处理它。尽管如此,javascript将更容易处理您想要与使用java / jsp占位符相媲美的内容。

以下是在javascript中处理它的示例。

<!DOCTYPE html>
<html><body>

<textarea id="outerArea" cols=50 rows=10></textarea>

<script type="text/javascript">
    var textAreaValue = '<form>'
        +'  <input type="text"><br>'
        +'  <textarea>Inner Text Area</textarea>'
        +'</form>';
    document.getElementById("outerArea").value = textAreaValue;
</script>

</body>
</html>

EDIT 回答OP的评论:Javscript还有很长的路要走。使用JSP和Javascript变量。

<!DOCTYPE html>
<html>
<header>
<script type="text/javascript">
    function copyContent() {
        document.getElementById("area1").value = ${param.txtArea};
    }
</script>
</header>
<body>
<textarea id="area1" cols=50 rows=10></textarea>
</body>
</html>

答案 1 :(得分:0)

如果您将HTML放入textarea标签的value属性中,它将正常工作。

就像那样:

client

答案 2 :(得分:0)

我只是使用标签覆盖了我的textarea,然后如果需要显示输出的设计,请使用jquery的wyswyg插件。

<script src="jquery.richtext.js"></script>
<textarea value="<!DOCTYPE html>
<html>
    <head>
        <title>
            Example page
        </title>
    </head>
    <body>
        <textarea>
        <code>
        some html code here with style<h1>text</h1>
        or any
        </code>
        
        
        </textarea>
    </body>
</html>"></textarea>