简体   繁体   中英

spring mvc page no binding

I write a very simple spring-mvc example, expect show "hello world" in page . But it failed. It just show the "${message}" in the page.

below is my code and jsp. Is there any mistake I made? Or something configuration I missed? Thanks!

code: Java:

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.AbstractController;

    public class HomepageController extends AbstractController {

        @Override
        public ModelAndView handleRequestInternal(HttpServletRequest request,
            HttpServletResponse response) throws Exception {



        ModelAndView mav = new ModelAndView();
        mav.addObject("message", "hello world");
        mav.setViewName("homepage");
        return mav;
        }

}

servlet.xml:

    <?xml version="1.0" encoding="GBK"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">


    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/home.htm">homepageController</prop>
            </props>
        </property>
    </bean>

    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>  

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/pages/" />
        <property name="suffix" value=".jsp" />
    </bean>


    <bean id="homepageController" class="com.sunjq.config.web.HomepageController"/>



</beans>

web.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd"
    version="2.4">

    <display-name>Archetype Created Web Application</display-name>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/serviceContext.xml
            /WEB-INF/daoContext.xml
        </param-value>
    </context-param>
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>


    <servlet>
        <servlet-name>appServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/appServlet-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>appServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>


    <servlet-mapping>
        <servlet-name>appServlet</servlet-name>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>



</web-app>

jsp page:

  <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  

    <html>  
    <head>  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
    <title>Homepage</title>  
    </head>  
    <body>  
    ${message}  
    </body>  
    </html> 

I guess that you did not enabled jstl and this is not related to spring mvc.
You need to :

  1. Make sure your web container is installed with jstl
  2. Add the following at the top of your page

The following answer provides good information on this topic Enabling JavaServerPages Standard Tag Library (JSTL) in JSP I suggest using it as a reference.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM