Archetype Created Web ApplicationcontextConfigLocationclasspath:spring-context.xml
org.springframework.web.context.ContextLoaderListener
struts2
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
struts2*.actionencodingFilter
org.springframework.web.filter.CharacterEncodingFilter
trueencodingUTF-8encodingFilter/*
基础模块(base) 把工具类导入进去 PageBean
package com.wangshaoyang.base.util;
/**
* 分页工具类
*
*/
public class PageBean {
private int page = 1;// 页码
private int rows = 10;// 页大小
private int total = 0;// 总记录数
private boolean pagination = true;// 是否分页
public PageBean() {
super();
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getRows() {
return rows;
}
public void setRows(int rows) {
this.rows = rows;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public void setTotal(String total) {
this.total = Integer.parseInt(total);
}
public boolean isPagination() {
return pagination;
}
public void setPagination(boolean pagination) {
this.pagination = pagination;
}
/**
* 获得起始记录的下标
*
* @return
*/
public int getStartIndex() {
return (this.page - 1) * this.rows;
}
@Override
public String toString() {
return "PageBean [page=" + page + ", rows=" + rows + ", total=" + total + ", pagination=" + pagination + "]";
}
}
StringUtils
package com.wangshaoyang.base.util;
public class StringUtils {
// 私有的构造方法,保护此类不能在外部实例化
private StringUtils() {
}
/**
* 如果字符串等于null或去空格后等于"",则返回true,否则返回false
*
* @param s
* @return
*/
public static boolean isBlank(String s) {
boolean b = false;
if (null == s || s.trim().equals("")) {
b = true;
}
return b;
}
/**
* 如果字符串不等于null或去空格后不等于"",则返回true,否则返回false
*
* @param s
* @return
*/
public static boolean isNotBlank(String s) {
return !isBlank(s);
}
}
BaseEntity
package com.wangshaoyang.base.entity;
import java.io.Serializable;
public class BaseEntity implements Serializable {
private static final long serialVersionUID = -2505396936918145327L;
}
BaseBiz
package com.wangshaoyang.base.biz;
public interface BaseBiz {
}
package com.wangshaoyang.base.web;
import java.io.Serializable;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
public class BaseAction implements ServletRequestAware, ServletResponseAware,Serializable{
private static final long serialVersionUID = -7110462505161900879L;
/**
* 为了传值使用
*/
protected HttpServletResponse response;
protected HttpServletRequest request;
protected HttpSession session;
protected ServletContext application;
/**
* 为了配置跳转页面所用
*/
protected final static String SUCCESS = "success";
protected final static String FAIL = "fail";
protected final static String LIST = "list";
protected final static String ADD = "add";
protected final static String EDIT = "edit";
protected final static String DETAIL = "detail";
/**
* 具体传值字段 后端向jsp页面传值所用字段
*/
protected Object result;
protected Object msg;
protected int code;
public Object getResult() {
return result;
}
public Object getMsg() {
return msg;
}
public int getCode() {
return code;
}
@Override
public void setServletResponse(HttpServletResponse arg0) {
this.response = arg0;
}
@Override
public void setServletRequest(HttpServletRequest arg0) {
this.request = arg0;
this.session = arg0.getSession();
this.application = arg0.getServletContext();
}
}
测试模块(book) 实体类Book
package com.wangshaoyang.book.entity;
import com.wangshaoyang.base.entity.BaseEntity;
public class Book extends BaseEntity{
private static final long serialVersionUID = -5880666920322037903L;
private Integer bid;
private String bname;
private Float price;
public Integer getBid() {
return bid;
}
public void setBid(Integer bid) {
this.bid = bid;
}
public String getBname() {
return bname;
}
public void setBname(String bname) {
this.bname = bname;
}
public Float getPrice() {
return price;
}
public void setPrice(Float price) {
this.price = price;
}
@Override
public String toString() {
return "Book [bid=" + bid + ", bname=" + bname + ", price=" + price + "]";
}
}
Book.hbm.xml
BookDao
package com.wangshaoyang.book.dao;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.springframework.orm.hibernate5.HibernateCallback;
import com.wangshaoyang.base.dao.BaseDao;
import com.wangshaoyang.book.entity.Book;
public class BookDao extends BaseDao{
private static final long serialVersionUID = 6568276808205680120L;
public int add(Book book) {
return (int)this.getHibernateTemplate().save(book);
}
public List list(){
return this.getHibernateTemplate().execute(new HibernateCallback>() {
@Override
public List doInHibernate(Session session) throws HibernateException {
return session.createQuery("from Book").list();
}
});
}
}
接口BookBiz
package com.wangshaoyang.book.biz;
import java.util.List;
import com.wangshaoyang.book.entity.Book;
public interface BookBiz {
public int add(Book book);
public List list();
}
实现BookBiz接口 BookBizimpl
package com.wangshaoyang.book.biz.impl;
import java.util.List;
import com.wangshaoyang.book.biz.BookBiz;
import com.wangshaoyang.book.dao.BookDao;
import com.wangshaoyang.book.entity.Book;
public class BookBizimpl implements BookBiz {
private BookDao bookDao;
public BookDao getBookDao() {
return bookDao;
}
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
@Override
public int add(Book book) {
// TODO Auto-generated method stub
return bookDao.add(book);
}
@Override
public List list() {
// TODO Auto-generated method stub
return bookDao.list();
}
}
BookAction
package com.wangshaoyang.book.web;
import java.util.List;
import com.wangshaoyang.base.web.BaseAction;
import com.wangshaoyang.book.biz.BookBiz;
import com.wangshaoyang.book.entity.Book;
import com.opensymphony.xwork2.ModelDriven;
public class BookAction extends BaseAction implements ModelDriven{
//book实现了modeldriven接口,那么意味着封装了jsp传递了参数
private Book book=new Book();
private BookBiz bookBiz;
public BookBiz getBookBiz() {
return bookBiz;
}
public void setBookBiz(BookBiz bookBiz) {
this.bookBiz = bookBiz;
}
public String add() {
this.bookBiz.add(book);
return null;
}
public String list() {
List list = this.bookBiz.list();
for (Book book : list) {
System.out.println(book);
}
return null;
}
@Override
public Book getModel() {
// TODO Auto-generated method stub
return book;
}
}
package spark.examples.scala.grammars.caseclasses
object CaseClass_Test00 {
def simpleMatch(arg: Any) = arg match {
case v: Int => "This is an Int"
case v: (Int, String)