springmvc配置

springMVC的简单增删改查案例,简单认识@controller,@Service,@RequestMapping注解方式

1.Dao类

book与Category类
public class Book {

    private long id;
    private String isbn;
    private String title;
    private Category category;
    private String author;

    public Book(long id, String isbn, String title, Category category,
            String author) {
        super();
        this.id = id;
        this.isbn = isbn;
        this.title = title;
        this.category = category;
        this.author = author;
    }

    public Book() {
        super();
        // TODO Auto-generated constructor stub
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getIsbn() {
        return isbn;
    }

    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public Category getCategory() {
        return category;
    }

    public void setCategory(Category category) {
        this.category = category;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

}
import java.io.Serializable;

//书类型类
public class Category implements Serializable {

    private static final long serialVersionUID = 7712571129230552971L;
    private String name;
    private int id;

    public Category(int id,String name) {
        super();
        this.name = name;
        this.id = id;
    }

    public Category() {
        super();
        // TODO Auto-generated constructor stub
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public static long getSerialversionuid() {
        return serialVersionUID;
    }

    @Override
    public String toString() {
        return super.toString();
    }
}

2.做接口及实现接口的Service类

public interface BookService {
    // 列举所有书的类型
    List<Category> getCategories();

    // 按id查找类型
    Category getCategory(long id);

    // 列举所有书籍
    List<Book> getAllBooks();

    // 保存书籍
    Book save(Book book);

    // 更新书籍
    Book update(Book book);

    // 按id查找书
    Book getBook(long id);

    // 下一id
    long getNextid();
}
/**
*注解方式,在实现接口的方法类上必须记得加上相应的注解@Service
*
*/
@Service              
public class BookServiceImpl implements BookService{

    private List<Category> categories;
    private List<Book> books;



    public BookServiceImpl() {
        categories=new ArrayList<Category>();
        Category category1=new Category(1,"Computer");
        Category category2=new Category(2,"travel");
        Category category3=new Category(3,"home");
        categories.add(category3);
        categories.add(category1);
        categories.add(category2);

        books=new ArrayList<Book>();
        books.add(new Book(1L,"10001","java for dead",
                category1,"imsadan"));
        books.add(new Book(2L,"10002","PHP for dead",
                category1,"zxf"));
    }

    @Override
    public List<Category> getCategories() {

        return categories;
    }

    @Override
    public Category getCategory(long id) {
        for (Category category:categories) {
            if (id==category.getId()) {
                return category;
            }
        }
        return null;
    }

    @Override
    public List<Book> getAllBooks() {
        return books;
    }

    @Override
    public Book save(Book book) {
        book.setId(getNextid());
        books.add(book);
        return book;
    }

    @Override
    public Book update(Book book) {
        int count=books.size();
        for(int i=0;i<count;i++){
            Book savebook=books.get(i);
            if (savebook.getId()==book.getId()) {
                books.set(i,book);
                return book;
            }       

        }
        return book;
    }

    @Override
    public Book getBook(long id) {
        for (Book book:books) {
            if (id==book.getId()) {
                return book;
            }
        }
        return null;
    }

    @Override
    public long getNextid() {
        long id=0L;
        for (Book book:books) {
            long bookid=book.getId();
            if (bookid>id) {
                id=bookid;
            }
        }       
        return id+1;
    }

}

springmvc控制类

/*
 *作为控制类,连接视图
 */

@Controller
public class BookController{
   @Autowired
   private BookService bookService;

    private static final Log logger=
           LogFactory.getLog(BookController.class);

   /*
    *相应input.action页面 
    *添加
    *编辑
    *保存
    *更新
    *显示
    */
   @RequestMapping(value="/book_input")
   public String inputBook(Model model ){
     List<Category> categories=bookService.getCategories();
     model.addAttribute("categories",categories);
     model.addAttribute("Book",new Book());
     return "bookAdd";

   }

   @RequestMapping(value="/book_edit/{id}")
   public String editBook(Model model,@PathVariable long id){
       List<Category> categories= bookService.getCategories();
       model.addAttribute("categories", categories);
       Book book=bookService.getBook(id);
       model.addAttribute("Book", book);
       return "bookEdit"; 
   }

   @RequestMapping(value="/book_save")
   public String saveBook(@ModelAttribute Book book){
       Category category=
               bookService.getCategory(book.getCategory().getId());
       book.setCategory(category);
       bookService.save(book);
       //重定向
       return "redirect:/book_list";   

   }

   @RequestMapping(value="/book_up")
   public String updateBook(@ModelAttribute Book book){
       Category category=
               bookService.getCategory(book.getCategory().getId());
       book.setCategory(category);
       bookService.update(book);

       return "redirect:/book_list";

   }

   @RequestMapping(value="/book_list")
   public String bookList(Model model){
       logger.info("book_list");
       List<Book> books=bookService.getAllBooks();
       model.addAttribute("books", books);

       return "BookList";

   }
}

@RequestMapping:为控制器指定可以处理哪些URL请求

3.DispatchServlet配置

DispatchServlet是前置的一个控制器,配置在web.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"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">                 
    <!-- scan the package and the sub package -->

    <context:component-scan base-package="controller"/> 
    <context:component-scan base-package="servises"/> 


    <mvc:annotation-driven /> 
    <mvc:resources location="/" mapping="/*.html"/> 

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
            id="ViewResolver">
        <!-- 前缀 -->
        <property name="prefix" value="/WEB-INF/jsp/" />
        <!-- 后缀 -->
        <property name="suffix" value=".jsp" />
    </bean>
</beans>

注:访问到jgp,css等文件问题
(1)
如上的<mvc:resources location="/" mapping="/*.html"/>
(2)Tomcat的defaultServlet处理

 <servlet-mapping>
   <servlet-name>default</>
   <url-patten>...</url-patten>
 </>

springmvc转发与重定向
通过redirect、forward:url转到另一个Action;可以通过redirect:url防止表单的重复提交

注:参考的一个简单log4j.xml配置文件

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) \n" />
        </layout>
    </appender>
    <logger name="java.sql">
        <level value="debug" />
    </logger>
    <logger name="org.apache.ibatis">
        <level value="debug" />
    </logger>
    <root>
        <level value="debug" />
        <appender-ref ref="STDOUT" />
    </root>
</log4j:configuration>

jsp页面不在具体贴上来了,已上传了

http://download.csdn.net/detail/t1012665655/9765680

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值