点击html普通按钮调用spring MVC控制器?

时间:2013-11-13 12:39:37

标签: java spring jsp spring-mvc

我在jsp页面下方有一个按钮。单击按钮,它已调用控制器,控制器必须显示相同的jsp页面。我怎么能这样做?

Controller.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>

3 个答案:

答案 0 :(得分:2)

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

如果您的jsp有表格,您可以将表格提交给action ='/ status'URl

答案 1 :(得分:2)

如果您需要显示相同的JSP页面,那么无论实际的URL如何,您都可以使用以下内容:

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

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

<button onclick="window.location.reload();">Load</button>

答案 2 :(得分:0)

所以你需要对同一个URI发出另一个GET请求。一种不依赖于JavaScript的简洁方法是使用表单:

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

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

<form action="<c:url value="/status" />">
    <button type="submit">Load</button>
</form>