无法调用Spring MVC Controller

时间:2017-07-21 16:48:31

标签: spring-mvc

我尝试了很多方法但是无法从我的jsp页面调用Spring Controller。即使是简单的字符串渲染也无效。所以这是背景 -

我使用Spring 4.3.9在Tomcat 9.0 M22上运行

我的test.jsp页面在body部分值中包含$ greeting,我可以将其渲染为Controller。

**** web.xml文件****

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/config/test-servlet.xml</param-value>
    </context-param>

    <servlet>
        <servlet-name>test</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

         <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value></param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>test</servlet-name>
        <url-pattern>/test/*</url-pattern>
    </servlet-mapping>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>


  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
   </welcome-fil`enter code here`e-list>
</web-app>

test-servlet.xml文件

<bean id = "viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>  
<property name="prefix" value = "/jsp/"/> 
<property name="suffix" value=".jsp"/>

****控制器文件****

@Controller
public class HelloMarsTeamController {

    @RequestMapping(value = "/test")
    public String sayHello(Model model) {
        model.addAttribute("greeting", "Hello world");

        return "hello";
    }
}

当我调用网址http://localhost:8080/marsapp/jsp/test.jsp时,它只是悬挂一个标题为“测试”的空白屏幕。所以似乎调用了jsp但是没有调用控制器的逻辑。

无法确定哪些不正确。

感谢您的帮助..

3 个答案:

答案 0 :(得分:0)

[编辑]:

将您的jsp文件夹移动到 WEB-INF ,因为您的servlet在test-servlet.xml修改下一行后完成了在webContent上查找:

<property name="prefix" value = "/WEB-INF/jsp/"/>

您的调度程序/test/为root配置,您只需致电http://localhost:8080/test

并修改控制器,如下所示:

@Controller
public class HelloMarsTeamController {

    @RequestMapping(value = "/test", method=RequestMethod.GET)
    public ModelAndView sayHello() {
        return ModelAndView("test", "Greetings", "Hello from Springframework Controller");
    }

}

然后在查看中将其传递到jsp视图<div>${Greetings}</div>

答案 1 :(得分:0)

伊万,

这是在日志中出现的内容以及仅在部署期间出现的内容。服务器日志中没有出现其他日志消息。下面是我的mvc树的屏幕截图 -

[Spring MVC Tree] [1]

https://i.stack.imgur.com/HiwCC.png

答案 2 :(得分:0)

一切都很好。这是工作。 EL不工作。

<%@ page isELIgnored="true" %>

在jsp页面上写下这个。