您的位置:首页 > 编程语言 > Java开发

SpringMVC入门一:helloWorld

2013-08-30 18:02 337 查看
玩了一下SpringMVC, 感觉挺清爽的 好像没有struts那么臃肿( 可能是高级的东西我还不会用 哈 )

例子中一共有俩方法:

一个Controller直接返回字串的方法, 另一个通过Dao层返回用户列表的方法,

前台只是用JSTL简单显示一下返回值,

主要是怕记不住 记在博客里, 算是个入门笔记吧

零:结构

用的是: spring-framework-3.2.4.RELEASE



一:配置文件

1.web.xml

<!--==>1.编码器 -->
<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>

<!--==>2.核心拦截器 -->
<!--核心拦截器还需要一个: 名称-servlet.xml的配置(用于配置HandlerMapping和 HandlerAdapter) -->
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<session-config>
<session-timeout>20</session-timeout>
</session-config>


2.名称-servlet.xml

对于hello这个servlet来说就是 hello-servlet.xml

<!-- 自动搜索 -->
<context:component-scan base-package="*.*" />

<!-- HandlerMapping和HandlerAdapter的配置 -->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>

<!-- view层的配置 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"></property>
</bean>


二:Controller层

HelloController.java

package com.hello.web.controller;

import java.util.List;

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

import org.springframework.stereotype.Controller;//==>@Controller注解
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.hello.dao.IHelloDao;
import com.hello.web.model.User;

@Controller
@RequestMapping(value="/hello")//==>指定命名空间:http://localhost:8080/HelloSpringMVC/hello
public class HelloController
{
@Resource
private IHelloDao helloDao;

//==>1.返回helloWorld字串
@RequestMapping(value="/helloWorld")//==>命名空间内具体请求: .../hello/helloWorld
public ModelAndView helloWorld(HttpServletRequest requset,HttpServletResponse response) throws Exception
{
System.out.println("==>start helloWorld()");
//==>ModelAndView是SpringMVC的一个核心对象org.springframework.web.servlet.ModelAndView;
ModelAndView mv = new ModelAndView();
mv.addObject("message", "==>Hello SpringMVC!"); //带参数,可以是Object
mv.setViewName("/view/hello"); //设置将要跳转的视图

return mv;
}

//==>2.通过Dao返回List
@RequestMapping(value="/userList")
public ModelAndView getUserList(HttpServletRequest requset,HttpServletResponse response) throws Exception
{
System.out.println("==>start getUserList()");

List<User> list = this.helloDao.getList();

ModelAndView mv = new ModelAndView();

mv.addObject("resultList", list);
mv.setViewName("/view/userList");

return mv;
}
}


三:Dao层

接口中不用拿注解做任何配置, daoImpl中需要注解@Service("IHelloDao")

public interface IHelloDao
{
public User getUserById(Integer uid);
public List<User> getList();
}


import org.springframework.stereotype.Service;

import com.hello.dao.IHelloDao;
import com.hello.web.model.User;

@Service("IHelloDao")
public class HelloDaoImpl implements IHelloDao
{

public User getUserById( Integer uid )
{
...
}

public List<User> getList()
{


四:view层

这个就是拿EL 和 JSTL简单输出一下

<body>
<br/>
${message}
</body>


<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>

...

<body>
<br>
<table border="1px" >
<c:forEach var="user" items="${resultList}" >
<tr align="center" >
<td><c:out value="${user.uid}"/></td>
<td><c:out value="${user.name}"/></td>
<td><c:out value="${user.password}"/></td>
<td><c:out value="${user.info}"/></td>
</tr>
</c:forEach>
</table>
</body>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: