将文本提交到相同的HTML页面
我在管理页面的视图中创建了一个文本字段和一个提交按钮,并且我想这样做,我提交的文本显示在我的文本框下方的同一页面上。将文本提交到相同的HTML页面
这是我得到的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,所以任何帮助,将不胜感激!
ok,然后,没有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";
}
那么您可以在“adminPage.jsp”添加<div>
和追加文本出现,如:
<div>${theText}</div>
好啊!我仍然需要一个标识符来输入,虽然,字符串很好,我猜。 – ITGuru
对不起,修好了。我只是在*地打字:) –
如果我已经正确理解你的问题,那么这个解决方案将会完成这项工作。
当用户从浏览器访问/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>
当用户提交表单,如果条件将被执行并返回的视图将包含先前输入数据在第二位textarea
我还没有测试编辑代码,它可能包含一些语法错误。
使用JavaScript的。您不需要向服务器提交任何内容,因为它全部是客户端。 –
我们没有在学校学到任何的JavaScript,我感觉失去了.. – ITGuru
是的,但是JavaScript不是答案,如果他想提交给服务器:)这有时是这种情况 - 如果他决定存储该信息,而不只是显示它 –