springMVC控制层返回视图层

时间:2022-12-10 19:46:47

MVC:-------------------------M:模型层 V:视图层  C:控制层

   实际项目开发中一般都是在controller中书写业务逻辑,通过业务层处理完之后,会返回至相应的视图。java而言的话,即:jsp页面。

这里提供两种方法:

一、 controller中方法直接return至指定文件;

a.   在配置文件中配置相应的bean;

例:如下

<bean  class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />

<property name="prefix" value="/WEB-INF/views" /> //前缀

<property name=“suffix” value=".jsp" /> //后缀

</bean>

如此,便配置了WEB-INF目录下的views文件夹下的所有后缀为.jsp文件的访问方式 。可在controller中直接使用return来进行

视图返回或跳转。


 b.   且这种方式必须要保证controller中方法的返回类型是String类型。

        例:如下

@RequestMapping("login.do")

public String login(HttpServletReqeust request,HttpServletResponse response,Model model){

model.addAttribute("name","value");

return "/foreground/index.jsp";

}


c. 此时如果需要向视图传递相应的参数。可以使用Model对象来进行值传递。


二、使用xml文件来进行视图映射.

a. 在配置文件中配置相应的bean;

例:如下

<bean class="org.springframework.web.servlet.view.XmlViewResolver">

<property name="location" value="/WEB-INF/spring-views.xml" />

</bean>


b.在controller中使用时只需要new一个ModelAndView对象即可。

例:如下

public ModelAndView index(....){

//创建一个mv对象并指定返回视图。

ModelAndView mv = new ModelAndView("index");

mv.addObject("name","value");

return mv;

}


c.在/web-inf文件夹下建立对应的spring-views.xml文件;

<?xml version="1.0" encoding="UTF-8"?>

//首先需要在该文件中添加必须要有声明。

<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.xsd">
        
      <bean id="
index" class="org.springframework.web.servlet.view.JstlView"> 
        <property name="url" value="/foreground/
home.jsp" /> 
      </bean
>

. </beans>


d.    controller中ModelAndView对象指定的视图在spring-views文件中以id名称来作为索引,并找到对应的页面。

且每次使用新页面,都需要在spring-views.xml文件中进行相应的文件布置。


OK。。。