BeanNameViewResolver:這個視圖解析器跟XmlViewResolver有點類似,也是通過把返回的邏輯視圖名稱去匹配定義好的視圖bean對象。它要求視圖bean對象都定義在Spring的application context中,而XmlViewResolver是在指定的配置文件中尋找視圖bean對象
1. 在SpringMVC配置文件中添加BeanNameViewResolver
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver"> <property name="order" value="10" /> </bean> <!-- 配置視圖解析器 --> <!--該視圖解析器的order值為Integer.MAX_VALUE --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/"></property> <property name="suffix" value=".jsp"></property> </bean>
2. 創建一個HelloView類,實現View接口
import java.util.Date; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Component; import org.springframework.web.servlet.View; @Component public class HelloView implements View{ public String getContentType() { // TODO Auto-generated method stub return "text/html"; } public void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) throws Exception { // TODO Auto-generated method stub response.getWriter().print("Welcome to View:"+new Date()); } }
3. 創建控制器
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @RequestMapping(value="/springmvc") @Controller public class MyView { @RequestMapping(value="/testMyView") public String testView(){ System.out.println("testView"); return "helloView"; } }
這里return的是視圖名的第一個字母小寫,springmvc會根據這個helloView名,去getBean,得到這個視圖對象