EmployeeListAction.java~1~
资源名称:某公司的java培训教材 [点击查看]
上传用户:dinglihq
上传日期:2013-02-04
资源大小:99958k
文件大小:4k
源码类别:
Java编程
开发平台:
Java
- package strutsds;
- import java.io.IOException;
- import javax.servlet.ServletException;
- import javax.servlet.ServletContext;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- import org.apache.struts.action.Action;
- import org.apache.struts.action.ActionForm;
- import org.apache.struts.action.ActionForward;
- import org.apache.struts.action.ActionMapping;
- import org.apache.struts.action.ActionErrors;
- import org.apache.struts.action.ActionError;
- import javax.sql.DataSource;
- import java.sql.Connection;
- import java.sql.Statement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.HashMap;
- import java.util.ArrayList;
- public class EmployeeListAction extends Action {
- protected ArrayList getEmployees() {
- Employee employee = null;
- //1.
- ArrayList employees = new ArrayList();
- Connection conn = null;
- Statement stmt = null;
- ResultSet rs = null;
- ServletContext context = servlet.getServletContext();
- DataSource dataSource = (DataSource)context.getAttribute(Action.DATA_SOURCE_KEY);
- try {
- conn = dataSource.getConnection();
- stmt = conn.createStatement();
- rs =stmt.executeQuery("select * from employees, roles,"
- +
- "departments where employees.roleid=roles.roleid "
- + "and employees.depid=departments.depid");
- while (rs.next()) {
- //2.new Employee() object
- employee = new Employee();
- employee.setUsername(rs.getString("username"));
- employee.setName(rs.getString("name"));
- employee.setRolename(rs.getString("rolename"));
- employee.setPhone(rs.getString("phone"));
- employee.setEmail(rs.getString("email"));
- employee.setRoleid(new Integer(rs.getInt("roleid")));
- employee.setDepid(new Integer(rs.getInt("depid")));
- employee.setDepartment(rs.getString("depname"));
- //3.add it to the collection
- employees.add(employee);
- System.err.println("in EmployeeActionList ---Username : "
- + employee.getUsername()
- + " Department : " + rs.getString("depname"));
- }
- }
- catch (SQLException e) {
- System.err.println(e.getMessage());
- }
- finally {
- if (rs != null) {
- try {
- rs.close();
- }
- catch (SQLException sqle) {
- System.err.println(sqle.getMessage());
- }
- rs = null;
- }
- if (stmt != null) {
- try {
- stmt.close();
- }
- catch (SQLException sqle) {
- System.err.println(sqle.getMessage());
- }
- stmt = null;
- }
- if (conn != null) {
- try {
- conn.close();
- }
- catch (SQLException sqle) {
- System.err.println(sqle.getMessage());
- }
- conn = null;
- }
- }
- return employees;
- }
- public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse httpServletResponse) {
- // Forward to the appropriate View
- /*Add any custom ActionMappings to the application. Again, this step is optional; it’s only necessary
- when your application defines a custom ActionMapping. In this application, we’ve added a custom
- ActionMapping that will be associated with the Action class; the custom mapping will specify
- whether the user must be logged in to perform the Action that it applies to. The default value is false,
- which allows a user who is not logged in to execute the Action. Our custom ActionMapping is shown
- in Listing 11.6.
- EmployeesActionMapping employeesMapping =
- (EmployeesActionMapping)mapping;
- // Does this action require the user to login
- if ( employeesMapping.isLoginRequired() ) {
- HttpSession session = request.getSession();
- if (session.getAttribute("USER") == null) {
- // The user is not logged in
- target = new String("login");
- ActionErrors errors = new ActionErrors();
- errors.add(ActionErrors.GLOBAL_ERROR,
- new ActionError("errors.login.required"));
- // Report any errors we have discovered back to
- // the original form
- if (!errors.empty()) {
- saveErrors(request, errors);
- }
- }
- }*/
- request.setAttribute("employees",getEmployees());
- return (mapping.findForward("success"));
- }
- }