本项目主要是对Struts中的Result Action struts.xml配置 OGNL表达式 值栈 开发流程 四层开发模式及每层模式功能的总结:
数据库的帮助类:可以通用
package com.bjsxt.bbs2009.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DB { public static Connection createConn() { Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1/bbs2009", "root", "123"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } public static PreparedStatement prepare(Connection conn, String sql) { PreparedStatement ps = null; try { ps = conn.prepareStatement(sql); } catch (SQLException e) { e.printStackTrace(); } return ps; } public static void close(Connection conn) { try { conn.close(); conn = null; } catch (SQLException e) { e.printStackTrace(); } } public static void close(Statement stmt) { try { stmt.close(); stmt = null; } catch (SQLException e) { e.printStackTrace(); } } public static void close(ResultSet rs) { try { rs.close(); rs = null; } catch (SQLException e) { e.printStackTrace(); } } }
Service层:实现的是业务逻辑功能
package com.bjsxt.bbs2009.service; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.bjsxt.bbs2009.model.Category; import com.bjsxt.bbs2009.util.DB; public class CategoryService { public void add(Category c) { Connection conn = DB.createConn(); String sql = "insert into _category values (null, ?, ?)"; PreparedStatement ps = DB.prepare(conn, sql); try { ps.setString(1, c.getName()); ps.setString(2, c.getDescription()); ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } DB.close(ps); DB.close(conn); } public List<Category> list() { Connection conn = DB.createConn(); String sql = "select * from _category"; PreparedStatement ps = DB.prepare(conn, sql); List<Category> categories = new ArrayList<Category>(); try { ResultSet rs = ps.executeQuery(); Category c = null; while(rs.next()) { c = new Category(); c.setId(rs.getInt("id")); c.setName(rs.getString("name")); c.setDescription(rs.getString("description")); categories.add(c); } } catch (SQLException e) { e.printStackTrace(); } DB.close(ps); DB.close(conn); return categories; } public void delete(Category c) { deleteById(c.getId()); } public void deleteById(int id) { Connection conn = DB.createConn(); String sql = "delete from _category where id = ?"; PreparedStatement ps = DB.prepare(conn, sql); try { ps.setInt(1, id); ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } DB.close(ps); DB.close(conn); } public void update(Category c) { Connection conn = DB.createConn(); String sql = "update _category set name = ?, description = ? where id = ?"; PreparedStatement ps = DB.prepare(conn, sql); try { ps.setString(1, c.getName()); ps.setString(2, c.getDescription()); ps.setInt(3, c.getId()); ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } DB.close(ps); DB.close(conn); } public Category loadById(int id) { Connection conn = DB.createConn(); String sql = "select * from _category where id = ?"; PreparedStatement ps = DB.prepare(conn, sql); Category c = null; try { ps.setInt(1, id); ResultSet rs = ps.executeQuery(); if(rs.next()) { c = new Category(); c.setId(rs.getInt("id")); c.setName(rs.getString("name")); c.setDescription(rs.getString("description")); } } catch (SQLException e) { e.printStackTrace(); } DB.close(ps); DB.close(conn); return c; } }
实体类:Model层
package com.bjsxt.bbs2009.model; public class Category { private int id; private String name; private String description; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } }
Action类:
package com.bjsxt.bbs2009.action; import java.util.List; import com.bjsxt.bbs2009.model.Category; import com.bjsxt.bbs2009.service.CategoryService; import com.opensymphony.xwork2.ActionSupport; public class CategoryAction extends ActionSupport { private List<Category> categories; private CategoryService categoryService = new CategoryService(); private Category category; private int id; public String list() { categories = categoryService.list(); return SUCCESS; } public String add() { categoryService.add(category); return SUCCESS; } public String update() { categoryService.update(category); return SUCCESS; } public String delete() { categoryService.deleteById(id); return SUCCESS; } public String addInput() { return INPUT; } public String updateInput() { this.category = this.categoryService.loadById(id); return INPUT; } public List<Category> getCategories() { return categories; } public void setCategories(List<Category> categories) { this.categories = categories; } public CategoryService getCategoryService() { return categoryService; } public void setCategoryService(CategoryService categoryService) { this.categoryService = categoryService; } public Category getCategory() { return category; } public void setCategory(Category category) { this.category = category; } public int getId() { return id; } public void setId(int id) { this.id = id; } }
struts.xml配置:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <!-- <package name="bbs2009_default" extends="struts-default"> <global-exception-mappings> <exception-mapping result="exception_handle" exception="Exception"></exception-mapping> </global-exception-mappings> </package> --> <package name="admin" namespace="/admin" extends="struts-default" > <action name="index"> <result>/admin/index.html</result> </action> <action name="*-*" class="com.bjsxt.bbs2009.action.{1}Action" method="{2}"> <result>/admin/{1}-{2}.jsp</result> <result name="input">/admin/{1}-{2}.jsp</result> </action> <!-- <action name="category" class="com.bjsxt.bbs2009.action.CategoryAction"> <result>/admin/category_list.jsp</result> <result name="add_input">/admin/category_add_input.jsp</result> <result name="update_input">/admin/category_update_input.jsp</result> </action> --> </package> <package name="front" namespace="/" extends="struts-default" > <!-- <default-action-ref name="index"/> --> <!-- bug!!! --> <action name="index" class="com.bjsxt.bbs2009.action.CategoryAction" method="list"> <result>/index.jsp</result> </action> </package> </struts>
运行截图:前台为BBS系统首页
后台为EXT做的,实现增删改查
源代码下载地址:http://download.csdn.net/detail/itjavawfc/7558747