1

我在 jsp 页面下面有一个按钮。单击按钮时,它会调用控制器,并且控制器必须显示相同的 jsp 页面。我怎样才能做到这一点?

控制器.java

 @Controller
    @RequestMapping("/status")
    public class CheckController { 


        @RequestMapping(method = RequestMethod.GET)
        public String loadDetails(ModelMap model) {


            List<Data> details = // fetch data from database
            model.addAttribute("details ", details );
            return "Status";
        }

    }


Status.jsp
----------

    <html>
    <body>
            <h2>Spring MVC and List Example</h2>

        <c:if test="${not empty details}">
            <c:forEach var="listValue" items="${details}">
                <table border="1" cellspacing="1" align="center"
                    style="margin-top: 160px;">
                    <tr>
                        <th>Status</th>
                        <th>Message</th>
                        <th>Last Updated</th>
                    </tr>
                    <tr>
                        <td>OK</td>
                        <td>${listValue.message}</td>
                        <td>${listValue.lastChecked}</td>
                    </tr>
                </table>
            </c:forEach>
        </c:if>
<button>Load</button> //on click of button controller has to be called and again same jsp has to be rendered
    </body>
    </html>
4

3 回答 3

3
<button onclick="window.location.href='/status'">Load</button>

如果您的 jsp 有表单,您可以将表单提交到 action='/status' url

于 2013-11-13T12:45:28.723 回答
2

如果您需要显示相同的 JSP 页面,那么不管实际的 URL,您都可以使用类似的东西:

<button onclick="window.location.href=window.location.href;">Load</button>

它也可以稍微短一些,但请注意,它不适用于旧的 IE 版本。

<button onclick="window.location.reload();">Load</button>
于 2013-11-13T12:53:44.480 回答
0

因此,您需要对同一个 URI 发出另一个 GET 请求。一种不依赖于 JavaScript 的干净方法是使用表单:

<form>
    <button type="submit">Load</button>
</form>

如果您没有在表单元素上指定操作属性,则 GET 请求将发送到与当前页面相同的 URI(在 HTML5 中)。在 HTML4 中,action 属性是必需的,因此您可以使用以下内容:

<form action="<c:url value="/status" />">
    <button type="submit">Load</button>
</form>
于 2013-11-14T20:56:45.887 回答