【问题标题】:Why my model and view object not displaying in JSP page .?为什么我的模型和视图对象没有显示在 JSP 页面中。?
【发布时间】:2016-04-22 08:19:35
【问题描述】:

您好,我正在使用 spring mvc。下面的代码示例。

  @Controller  
  public class WelcomeController {  

      @RequestMapping("/welcome")  
      public ModelAndView welcome() {  
          String message = "welcome to my tutorial";  
          return new ModelAndView("welcome", "message", message);  
      }  
  }  

但是这里这个消息是无法通过jsp页面获取的;

    welcome.jsp 
   message:${message}

只有我收到消息: 没有显示错误消息。

Here Web.xml file
<?xml version="1.0" encoding="UTF-8"?>  
<web-app version="2.5"   
xmlns="http://java.sun.com/xml/ns/javaee"   
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
<servlet>  
<servlet-name>Dispatcherspring</servlet-name>  
<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class><load-on-startup>1</load-on-startup>  
</servlet>  
<servlet-mapping>  
<servlet-name>Dispatcherspring</servlet-name>  
<url-pattern>*.html</url-pattern>  
</servlet-mapping>  
</web-app> 
 Here my Spring file
<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
xmlns:p="http://www.springframework.org/schema/p"  
xmlns:context="http://www.springframework.org/schema/context"  
xsi:schemaLocation="http://www.springframework.org/schema/beans  
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
http://www.springframework.org/schema/context  
http://www.springframework.org/schema/context/spring-context-3.0.xsd">  
<context:component-scan  base-package="package-name" />  
<bean  
class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
    <property name="prefix" value="/WEB-INF/jsp/" />  
    <property name="suffix" value=".jsp" />  
   </bean>  
   </beans>  

我发布的 xml 和 web.xml 文件

【问题讨论】:

  • 您确定您的请求正在由 Spring 处理。是不是直接去jsp了。发布您的 web.xml 和 Spring 配置文件
  • 是的,我确定。如果我使用 JSP 隐式对象,那么我可以直接执行。但我想去 Spring MVC
  • 发布 web.xml 和配置文件以便我们提供帮助

标签: spring jsp spring-mvc model-view-controller


【解决方案1】:

仅仅是因为您没有控制器的@Requestmapping。 因此 Spring 无法访问您的控制器并调用欢迎服务。

@controller
@RequestMapping
Class WelcomeController{
    @RequestMapping(value="/welcome", method=RequestMethod.GET)
    public void getStudent(){
   }
}

【讨论】:

  • 请阅读 GetMapping 的文档。请理解问题,然后才回答。
【解决方案2】:
    My controller is
    @Controller
    public class HouseController {

        @Autowired
        private HouseService houseService;

        @GetMapping(value = "/house")
        public ModelAndView get() {
            ModelAndView modelAndView = new ModelAndView();
            List<HouseDto> listHouse = houseService.listHouse();
            modelAndView.addObject("listHouse", listHouse);
            modelAndView.setViewName("house/listHouse");
            return modelAndView;
        }
    }

    <%@ page contentType="text/html; charset=UTF-8" isELIgnored="false"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <%@ page contentType="text/html; charset=UTF-8" isELIgnored="false"%>

    ###JSP
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </head>
    <body>
        <div>
                <c:forEach var="house" items="${listHouse}" varStatus="">
                            <tr>
                                <td>${house.name}</td>
                            </tr>
                        </c:forEach>
         </div>
    <body>

 #<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    its work for me

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多