在查询所在的同一页面中显示结果的简单方法 - Spring App

时间:2014-04-27 05:19:02

标签: java spring jsp

我是spring和java技术的新用户。我正在尝试创建一个简单的搜索应用程序,它在搜索框中显示查询并在其他页面中显示结果。接收搜索查询的页面是input.jsp -

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@taglib prefix="form" 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=ISO-8859-1">
<title>Input Form</title>
</head>
<body>
  <form:form action="output.html" commandName="query"  >
   <table align="center" >
        <tr>
            <td>Enter query :</td>
            <td><form:input path="query"/></td>
        </tr>       
        <tr>
            <td></td>
            <td><input type="submit" value="Search" /></td>
        </tr>
    </table>
  </form:form>


</body>
</html>

显示结果的页面是output.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" %>    

<!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=ISO-8859-1">
<title>Oputput Form</title>
</head>
<body>
   <table align="center" >
        <tr>
            <td>Result:</td>            
            <td><c:out value="${query.result}" /></td>
        </tr>      
  </table>

</body>
</html>

控制器'BaseController.java'是 -

    @Controller
    public class BaseController {

        private SearchManager srchMgr = new SearchManager();
        private static Logger logger = Logger.getLogger(BaseController.class);

        @RequestMapping(value = "/input.html", method = RequestMethod.GET)
        public void getIp(Model model) {
            model.addAttribute(new Query());
        }
        @RequestMapping(value = "/output.html", method = RequestMethod.POST)
            public void showOutput(@ModelAttribute Query query, Model model){

                model.addAttribute("query", query);
    }
}

现在我试图在input.jsp(搜索结果)中显示output.jsp中的所有内容。为了做到这一点,我应该做出哪些改变?我已经尝试将output.jsp中的所有代码放到input.jsp并且也改变了@RequestMapping。但它没有奏效。谢谢提前

1 个答案:

答案 0 :(得分:1)

非常简单。您需要做的就是在返回结果时返回相同的页面 现在应该有一个问题,当你第一次访问(在搜索任何东西之前)那个页面中显示的内容时!只需使用null check参数来查看结果是否为null(在第一次访问时)。如果结果为空,则不要显示任何内容 这就是你需要做的一切!