Spring控制器不会加载视图

时间:2019-09-03 05:03:38

标签: spring spring-boot spring-mvc

我使用ajax通过按钮单击来调用控制器。我希望它加载hello.html页面,但我希望spring不能加载ajax。

单击按钮后什么都没发生,但我确定控制器被击中。

这是我使用ajax通过单击按钮调用的控制器。

    @RequestMapping(value="/submitName", method=RequestMethod.GET)
    public String submitName(@RequestParam String name, Model model) {
        System.out.println(name);
        model.addAttribute("name", name);
        return "hello";
    }

这里是ajax调用。

$('#submit-button').on('click', function() {
    $.ajax({
        type: 'GET',
        url: '/submitName',
        data: {name: $('#name').val()}
    });
});

在Chrome网络标签中,有趣的是它显示了我期望的页面。这是一个片段。

2 个答案:

答案 0 :(得分:0)

我认为这里一切正常,除非您未提及要如何显示页面或显示在何处。您必须声明一个容器,从控制器返回的html会出现在该容器中,例如在div id下或类似的东西。 因此,仅在您当前的html页面中,声明一个新标签,可能是<div id="current-page-id"></div>

现在,使用jquery将hello.html页面附加到当前页面:

$("#current-page-id").html(responseData);

因此,基本上,请执行以下操作:

 $.ajax({
            type: 'GET',
            url: '/submitName',
            data: {name: $('#name').val()},
            dataType: 'html',
            success: function (responseData) {
                $('#current-page-id').html(responseData);

            },
        });

或者,简单地,将页面加载为单独的html页面,而不通过ajax。

更新:

按照注释部分的要求使用ajax,而不要使用ajax,方法如下:

function getHtmlPage(String name)
{
   location.href = 'submitName/' + name;
}

现在点击按钮即可调用您的方法:

$('#submit-button').on('click', function() {
   var name=$('#name').val();
   getHtmlPage(name);
});

答案 1 :(得分:0)

AJAX调用只是将请求发送到服务器(控制器)并收到响应,

默认情况下,重新加载页面不承担任何责任。

这就是为什么当您单击按钮时,它会打到服务器端,但停留在同一页面上。

很简单,您可以通过两种方式加载新页面(hello.html)

1 |通过AJAX调用:

在按钮click方法上,您必须显式加载页面(Ajax Success块中的最佳实践)

添加此窗口加载方法:
          window.location.href =“ http://localhost:8080/hello.html”;

 Like: 

 $('#submit-button').on('click', function() {
 $.ajax({
    type: 'GET',
    url: '/submitName',
    data: {name: $('#name').val()}
    window.location.href = "http://localhost:8080/hello.html";
  });
 });

2 |直接在按钮上进行Http调用

HTML

  <a class="btn btn-primary btn-lg pull-right" href="http://localhost:8080/hello" role="button">Hello Page</a>

JSP:

 <a class="btn btn-primary btn-lg pull-right" href="${pageContext.request.contextPath}/hello" role="button">Hello page</a>

胸腺

<a class="btn btn-xs" th:href="@{/hello})}">Hello Page </a>