要把一个数据传到页面上
刚开始:
public void addInput(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<Channel> channels = channelDao.list(0, Integer.MAX_VALUE).getData();
request.setAttribute("channels", channels);
request.getRequestDispatcher("/backend/article/add_article.jsp").forward(request, response);
}
用SpringMVC框架后
@RequestMapping("/list") //http://localhost:8080/smvc/list.action
public ModelAndView list(){
ModelAndView mv = new ModelAndView();
List<Items>itemList = new ArrayList<Items>();
//商品列表
Items items_1 = new Items();
items_1.setName("联想笔记本_3");
items_1.setPrice(6000);
items_1.setDetail("ThinkPad T430 联想笔记本电脑!");
Items items_2 = new Items();
items_2.setName("苹果手机");
items_2.setPrice(5000);
items_2.setDetail("iphone6苹果手机!");
itemList.add(items_1);
itemList.add(items_2);
//设置要携带的数据
mv.addObject("items", itemList);
//设置显示的页面
mv.setViewName("/list.jsp");
return mv;
}
用SpringMVC视图解析器
@RequestMapping("/list") //http://localhost:8080/smvc/list.action
public String list(Model m){
List<Items>itemList = new ArrayList<Items>();
//商品列表
Items items_1 = new Items();
items_1.setName("联想笔记本_3");
items_1.setPrice(6000);
items_1.setDetail("ThinkPad T430 联想笔记本电脑!");
Items items_2 = new Items();
items_2.setName("苹果手机");
items_2.setPrice(5000);
items_2.setDetail("iphone6苹果手机!");
itemList.add(items_1);
itemList.add(items_2);
//直接往model里面加(与配置有关)
m.addAttribute("items", itemList);
return "list";
}
SpringMVC好处:信息由之前的Servle传输,到现在的类直接传输
SpringMVC视图解析器的好处:类中的方法变简单
SpringMVC视图解析器:要加Model参数,返回值为页面
配置:在配置文件里配置
<!-- 配置视图解析器(为了简化返回) -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/" /> <!-- 前缀 -->
<property name="suffix" value=".jsp" /> <!-- 后缀 -->
</bean>
这样在网址上输入//http://localhost:8080/smvc/list.action就执行的是该类的方法。该方法中就可以直接转到返回的页面上。
注意:路径中的/list.action是方法前配的@RequestMapping("/list"),在加上配置文件里的视图解析器的前缀和后缀。