繁体   English   中英

Spring MVC表单提交,填充在同一页面上

[英]Spring MVC form submission, populate on the same page

我正在尝试使用post方法创建一个简单的函数。 我想要的是在表单中输入并提交的内容-它应该出现在表单下方的同一页上。 但是,一旦我单击“提交”,文本便消失了。 这是我的代码

控制器

@Controller

public class SearchController {



@RequestMapping(value = "/search", method = RequestMethod.GET)
public String goToSearch(Model model) {

    model.addAttribute("item", new Item());

    return "itemsearch";

}

@RequestMapping(value = "/search", method = RequestMethod.POST)
public String search(Item item, Model model, @RequestParam String itemId) throws IOException{

    model.addAttribute("item", new Item());



    return "itemsearch";

}
}

JSP文件

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="s" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

<h2>Search for an item</h2>

<sf:form action="search" method="POST" modelAttribute="item">

          <label>Please enter the item Id number:<sf:input type="text"     name="itemId"  id="itemId" path="itemId" /></label><br/>

          <input type="submit" value="Submit" path="submit" />

          <br> You are trying to search for Id Number: <b><h3>${item.itemId}<h3></h3></b> 

</sf:form>

物品类别

public class Item {

private String itemId;

private List<String> itemDetails;


public List<String> getItemDetails() {
    return itemDetails;
}

public void setItemDetails(List<String> itemDetails) {
    this.itemDetails = itemDetails;
}

public String getItemId() {
    return itemId;
}

public void setItemId(String itemId) {
    this.itemId = itemId;
}



}

非常感谢

我认为您需要基本了解Spring MVC的工作原理。

看看这张照片:

在此处输入图片说明

您会看到来自客户端的传入请求(您的POST请求),该请求被重定向到所需的控制器。 控制器(您的SearchController )做出了一些商业魔术,并将模型返回给前端控制器。 默认情况下,该模型为空。 您可以添加应通过model.addAttribute("someId", someObject);呈现的对象model.addAttribute("someId", someObject); 现在,传递的模型由视图模板( itemsearch )处理,该模板将模板和模型连接到传递给客户端的(静态)响应。

还有问题。 您正在将控制器的new Item()传递给模型。 它是一个空对象,它没有值(没有要提交的id (在提交表单后)。 因此,在您的JSP页面上可能什么也不显示。 只需将找到的项目或您请求中的项目传递给模型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM