将文本提交到同一HTML页面

时间:2017-10-19 12:13:05

标签: java model-view-controller submit thymeleaf

我在管理页面的视图中创建了一个文本字段和一个提交按钮,我想这样做,我提交的文本显示在同一页面上的文本框下面。

这是我进入adminPage的控制器:

@RequestMapping(value = "/adminPage", method = RequestMethod.POST)
public String adminPage(Model model) {

return "adminPage";
}

这就是我对adminPage的所作所为:

<form th:action="@{/adminPage}" method="post">
    <textarea rows="4" cols="50">
</textarea>
    <input type="submit" class="btn btn-lg btn-primary btn-block" 
value="Submit Text"/>

</form>

我在控制器和MVC方面仍然很新,我发现很难在Java中使用我的知识,因为控制器看起来不像以前使用的任何Java,所以任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

好的,没有Javascript。首先,textarea需要名称属性name="inputText"

当您的服务器方法收到请求时,该名称将在模型对象中使用:

@RequestMapping(value = "/adminPage", method = RequestMethod.POST)
public String adminPage(@RequestParam("inputText") String input, Model model) {
    //Do stuff
    model.addAttribute("theText", input); //add the text which can be accessed on "adminPage"
    return "adminPage";
}

然后你可以在&#34; adminPage.jsp&#34;中添加<div>。并在那里附加你的文字,如:

<div>${theText}</div>

答案 1 :(得分:0)

如果,我已经正确理解了您的问题,那么就是可以完成这项工作的解决方法。

当用户从浏览器访问/adinPage时,input_data变量将为null,并且不会执行if条件。 将返回JSP页面,其中第二个textarea为空。

您必须使用JSP因为HTML页无法更改。

<强> Controller.java

@RequestMapping(value = "/adminPage", method = RequestMethod.POST)
public String adminPage(@RequestParam(value = "input_data", required = false) String input_data,Model model) 
{
     if(input_data!=null)
         model.addAttribute("output_data",input_data);

     return "adminPage";
}

<强> adminPage.jsp

<form th:action="@{/adminPage}" method="post">

       <textarea id="input_data" rows="4" cols="50">
       </textarea>

       <textarea rows="4" cols="50">
       ${output_data}
       </textarea>

       <input type="submit" class="btn btn-lg btn-primary btn-block" 
       value="Submit Text"/>

</form>

当用户提交表单时,将执行if条件,返回的视图将包含第二个textarea

中先前输入的数据

我没有测试过代码,因此可能包含一些语法错误。