2016-11-15 71 views
0

我想用post方法创建一个简单的函数。我想要的是什么在表格中输入并提交 - 它应该出现在表格下方的同一页上。但是,一旦我点击“提交”,文本就会消失。这里是我的代码Spring MVC表单提交,在同一页上填充

位指示

@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> 

Item类

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; 
} 



} 

非常感谢

回答

1

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

看一看这样的画面:从被重定向到所需的控制器客户端

enter image description here

你看到一个进入的请求(您POST要求)。控制器(您的SearchController)会产生一些商业魔力,并将模型返回到前端控制器。该模型默认为空。您可以添加应通过model.addAttribute("someId", someObject); 呈现的对象。传递的模型现在由视图模板(itemsearch)处理,该模板将模板和模型连接到传递给客户端的(静态)响应。

还有问题。您正将您的控制器new Item()传递给模型。它是一个没有值的空对象(并且没有id要在表单子命令后渲染)。因此你的JSP页面可能没有任何显示。只需将找到的项目或项目从请求传递到模型。

相关问题