spring mvc:我如何给<form:textarea>标签一个默认值?</form:textarea>

时间:2014-06-30 07:19:02

标签: jsp spring-mvc

我正在使用spring mvc框架学习表单处理。但是我在为<form:textarea />标记提供默认值时遇到问题 当我按如下方式创建.jsp文件时,

<form:textarea path="Content" id="my-text-box" />${content}

jsp解析器将上面的行转换为:(假设${content}包含“hello world”。)

<textarea id="my-text-box" name="Content"></textarea>third hello world!

此外,提供value属性不起作用。

<form:textarea value="${content}" path="Content" id="my-text-box" />

jsp给我输出html:

<textarea id="my-text-box" name="Content" value="third hello world!"></textarea>

您知道<textarea>标记没有value属性。

如何将默认值传递给<form:textarea>代码? 提前谢谢。

7 个答案:

答案 0 :(得分:3)

Spring表单标签用于数据绑定(例如,您的模型属性通过表单的path属性绑定到表单)。如果需要指定默认值,请在控制器到达视图之前将Content的{​​{1}}属性设置为所需的默认值。

如果你使用Spring MVC和ModelYouArePassingToView,那么在你的控制器中一个非常好的地方就是你的@ModelAttribute方法。例如:

@RequestMapping

在表单中,请务必添加@ModelAttribute("modelYouArePassingToView") public ModelYouArePassingToView createDefault() { //construct it with default values for "Content" //attribute, and it will show up in textarea after the bindind ModelYouArePassingToView myapv = new ModelYouArePassingToView(); myapv.setContent(..); //default value return myapv; } 代码属性:

modelAttribute

答案 1 :(得分:2)

也许你可以使用占位符。

            <form:textarea
                            id="id"
                            class="class"
                            path="path"
                            placeholder="test"/>

答案 2 :(得分:1)

我遇到了类似的情况。以下代码:

<form:textarea path="Content" id="my-text-box">${content}</form:textarea>

为我工作。

答案 3 :(得分:0)

您也可以在模型中设置默认文本。你的jsp会有:

<form:textarea path="my-text-box" rows="20" cols="100" cssClass="rounded"/>

然后在模型中,您将拥有:

private static final String DEFAULT_textareacontent = "Hello World";
private String my-text-box = DEFAULT_textareacontent;

不确定这是否是最佳做法,但似乎对我有用。

答案 4 :(得分:0)

这适用于Spring 4,其中form:textarea标记必须为空:

<form:textarea path="content" value="${Object.content}"/>

答案 5 :(得分:0)

您必须将JS与Spring MVC结合使用才能完成此工作。这就是我所做的:

  1. 将文本区域更改为基本html,如下所示:

     <textarea id="myTextArea" onchange="here();">${content}</textarea>
      OR
     <textarea id="myTextArea" onchange="here();">third hello world!</textarea>
    
  2. 使用spring mvc添加隐藏的输入字段:

    <form:input type="hidden" id="content" path="Content" value="third hello world!"/>
    
  3. 添加以下JavaScript:

    <script>
      var text1 = document.getElementById('myTextArea').value;
      function here() {
         text1 = document.getElementById('myTextArea').value;
         document.getElementById("content").value = text1;
      }
    </script>
    

答案 6 :(得分:0)

您可以使用jquery获取模型属性值并在textarea中设置值

 $( function() {
         var example = parseInt('${example}');       
         $("#bot").val(example); 
    } );