zoukankan      html  css  js  c++  java
  • 78.员工个人信息保镖页面 Extjs 页面

    1

     1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     2 <%@ taglib prefix="s" uri="/struts-tags" %>
     3 
     4 <html >
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
     7 </head>
     8 
     9 <body>
    10     <!-- <a href="emp_report.action?empId=0007" target="_blank">report</a>
    11     <s:form action="emp_report.action">
    12         <s:textfield name="empId"/>
    13         <s:submit value="确定"/>
    14     </s:form>-->
    15     <script type="text/javascript">
    16         var empDetailPanel = new EmpDetailPanel();
    17         var w = Ext.getCmp('mainTab').getActiveTab().getInnerWidth();
    18         var h = Ext.getCmp('mainTab').getActiveTab().getInnerHeight();
    19         var activeTab = Ext.getCmp('empDetailPanelId');
    20         if(activeTab){
    21             activeTab.setHeight(h);
    22             activeTab.setWidth(w);
    23         }
    24         //渲染
    25         activeTab.render('empDetail');
    26     </script>
    27     <div id="empDetail"></div>
    28 </body>
    29 </html>
    30  

    2.

      1 //创建一个员工个人信息面板
      2 EmpDetailPanel = Ext.extend(Ext.Panel,{
      3     id: 'empDetailPanelId',
      4     constructor: function(){
      5         EmpDetailPanel.superclass.constructor.call(this, {
      6             items: [{
      7                 html: '<iframe src="" id="viewArea" width="100%" height="500" frameborder="0" scrolling="auto"></iframe>'
      8             }],
      9             tbar: new Ext.Toolbar({
     10                 items: ['员工工号',{
     11                     xtype: 'textfield',
     12                     id: 'report_empId',
     13                      100,
     14                     listeners: {'blur': blurFn2}
     15                 },{
     16                     text: '详细PDF单个预览',
     17                     handler: this.viewFn
     18                 },'-',{
     19                     text: '简单PDF单个预览',
     20                     handler: this.simpleViewFn    
     21                 },'-',{
     22                     text: '详细PDF单个导出',
     23                     handler: this.exportFn
     24                 },'-',{
     25                     text: '详细PDF全部导出',
     26                     handler: this.exportAllFn
     27                 },'-',{
     28                     text: '简单PDF导出',
     29                     handler: this.simplePdfExportFn
     30                 },'-',{
     31                     text: '简单PDF全部导出',
     32                     handler: this.simplePdfAllExportFn
     33                 },'-',{
     34                     text: '详细Excel全部导出',
     35                     handler: this.detailXlsAllExportFn
     36                 }]
     37             })
     38         })
     39     },
     40     //详细PDF单个预览
     41     viewFn: function(){
     42         var url = 'emp_detailPdfReport.action?empId=';
     43         var empId = Ext.get('report_empId').dom.value;
     44         if(empId == ''){
     45             Ext.Msg.alert('提示','请输入工号');
     46             return;
     47         }
     48         //更改Src属性刷新页面
     49         Ext.get('viewArea').dom.src = url+empId;
     50     },
     51     //简单PDF单个预览
     52     simpleViewFn: function(){
     53         var url = 'emp_simplePdfReport.action?empId=';
     54         var empId = Ext.get('report_empId').dom.value;
     55         if(empId == ''){
     56             Ext.Msg.alert('提示','请输入工号');
     57             return;
     58         }
     59         Ext.get('viewArea').dom.src = url+empId;
     60     },
     61     //详细PDF单个导出
     62     exportFn: function(){
     63         var empId = Ext.get('report_empId').dom.value;
     64         if(empId == ''){
     65             Ext.Msg.alert('提示','请输入工号');
     66             return;
     67         }
     68         document.location = 'emp_detailPdfExport.action?empId='+empId;
     69     },
     70     //详细PDF全部导出
     71     exportAllFn: function(){
     72         document.location = 'emp_detailPdfExport.action?empId=all';
     73     },
     74     //简单PDF导出
     75     simplePdfExportFn : function(){
     76         var empId = Ext.get('report_empId').dom.value;
     77         if(empId == ''){
     78             Ext.Msg.alert('提示','请输入工号');
     79             return;
     80         }
     81         document.location = 'emp_simplePdfExport.action?empId='+empId;
     82     },
     83     //简单PDF全部导出
     84     simplePdfAllExportFn: function(){
     85         document.location = 'emp_simplePdfExport.action?empId=all';
     86     },
     87     //详细Excel全部导出
     88     detailXlsAllExportFn: function(){
     89         document.location = 'emp_detailXlsExport.action';
     90     }
     91 });
     92 //焦点离开
     93     blurFn2 = function(value){
     94         var empId = value.getRawValue();
     95         Ext.Ajax.request({
     96             url: 'emp_isExist.action',
     97             method: 'post',
     98             params: {
     99                 empId: empId
    100             },
    101             success: isExistSuccessFn2,
    102             failure: save_failure
    103         })
    104     };
    105     //焦点离开成功
    106     isExistSuccessFn2 = function(response, options){
    107         if(response.responseText == ''){
    108             Ext.Msg.alert('提示','此工号不存在');
    109         }
    110     }

    3.员工个人信息Action

      1 package com.hrmsys.action;
      2 
      3 import java.io.File;
      4 import java.io.IOException;
      5 import java.io.PrintWriter;
      6 import java.io.UnsupportedEncodingException;
      7 import java.util.ArrayList;
      8 import java.util.List;
      9 
     10 import javax.servlet.http.HttpServletResponse;
     11 
     12 import org.apache.struts2.ServletActionContext;
     13 
     14 import com.hrmsys.bean.EmployeeBean;
     15 import com.hrmsys.model.Employee;
     16 import com.hrmsys.model.User;
     17 import com.hrmsys.service.EmpService;
     18 import com.hrmsys.service.JobChangeService;
     19 import com.hrmsys.util.ConditionValidate;
     20 import com.hrmsys.util.CurrentDate;
     21 import com.hrmsys.util.FileExport;
     22 import com.hrmsys.util.SequenceBuilder;
     23 import com.opensymphony.xwork2.ActionContext;
     24 
     25 public class EmpAction extends BaseAction{
     26     private EmpService empService;
     27     private Employee emp;
     28     private List<EmployeeBean> empBeans;
     29     private JobChangeService jobChangeService;
     30     /**
     31      * 由于dept和job常用,故单独成一js文件
     32      * 但在与struts整合时不便将属性名绑定到name,
     33      * 故此单独定义deptId和jobId属性
     34      */
     35     private String deptId = null;
     36     private String jobId  = null;
     37     private String empPhoto = null;
     38     /**
     39      * 配置文件中的参数会通过setter方法注入
     40      * rePath获取savePath的值
     41      */
     42     private String rePath = null;
     43     /**
     44      * 查询条目
     45      */
     46     private String condition;
     47     /**
     48      * 查询内容
     49      */
     50     private String conditionValue;
     51     /**
     52      * 保存的路径
     53      */
     54     private String savePath; 
     55     /**
     56      * 上传的文件内容 
     57      */
     58     private File upload;
     59     /**
     60      * 保存的文件名
     61      */
     62     private String uploadFileName;
     63     /**
     64      * 上传的文件种类
     65      */
     66     private String uploadContentType;
     67     private String empId;
     68     private String ids;
     69     private String start;
     70     private String limit;
     71     
     72     /************方法**********************************************/
     73     /**
     74      * 清单
     75      */
     76     public void list(){
     77         String json = null;
     78         json = empService.getByHQL(deptId, condition, conditionValue, start, limit);
     79         this.setStart(null);
     80         this.setLimit(null);
     81         this.out(json);
     82     }
     83     /**
     84      * 保存员工信息
     85      */
     86     public void save(){
     87         log.info("save start....");
     88         log.info(this.getEmpPhoto());
     89         String msg = "保存失败";
     90         HttpServletResponse response = this.getResponse();
     91         User user = (User)ActionContext.getContext().getSession().get("user");
     92         emp.setEmpPhoto(this.getEmpPhoto());
     93         emp.setEmpAddDate(CurrentDate.getDate());
     94         emp.setEmpAddPerson(user.getUserName());
     95         msg = empService.save(emp);
     96         this.out("{success: true, msg: '"+msg+"'}");
     97     }
     98     /**
     99      * 员工头像上传
    100      */
    101     public void upload(){
    102         log.info("upload start...");
    103         log.info("uploadFileName="+this.getUploadFileName());
    104         //重命名
    105         String fileName = SequenceBuilder.getSequence()+this.getUploadFileName().substring(this.getUploadFileName().indexOf(".")); 
    106         String msg = empService.uploadPhoto(this.getSavePath()+"\"+fileName, this.getUpload());
    107         this.out("{success: true, msg: '"+msg+"', path: '"+this.rePath+"/"+fileName+"'}");
    108     }
    109     /**
    110      * 根据工号判断是否存在此员工
    111      */
    112     public void isExist(){
    113         String empName = empService.isExistByEmpId(empId);
    114         this.out(empName);
    115     }
    116     
    117     public void unique(){
    118         String emp = empService.unique(empId);
    119         this.out(emp);
    120     }
    121     
    122     public void delete(){
    123         String filePath = ServletActionContext.getRequest().getRealPath(savePath);
    124         String msg = empService.delete(ids, filePath);
    125         this.out("{success: true, msg: '"+msg+"'}");
    126     }
    127     
    128     public void intoUpdate(){
    129         String empJson = empService.listByEmpId(empId);
    130         this.out(empJson);
    131     }
    132     /**
    133      * 详细员工pdf报表预览
    134      */
    135     public String detailPdfReport(){
    136         empBeans = empService.getEmpList(empId);
    137         return "detailPdf";
    138     }
    139     public String simplePdfReport(){
    140         empBeans = empService.getEmpList(empId);
    141         return "simplePdf";
    142     }
    143     /**
    144      * 导出详细报表pdf
    145      */
    146     public void detailPdfExport(){
    147         empService.pdfExport(empId, this.getResponse(),"员工详细信息.pdf","detailEmp.jasper");
    148     }
    149     /**
    150      * 导出员工简单信息pdf
    151      */
    152     public void simplePdfExport(){
    153         empService.pdfExport(empId, this.getResponse(),"员工简单信息.pdf", "simpleEmp.jasper");
    154     }
    155     /**
    156      * 导出员工简单信息Excel
    157      */
    158     public void detailXlsExport(){
    159         empService.xlsExport(this.getResponse(), "员工信息.xls");
    160     }
    161     /*********getter and setter ***********/
    162     public EmpService getEmpService() {
    163         return empService;
    164     }
    165 
    166     public void setEmpService(EmpService empService) {
    167         this.empService = empService;
    168     }
    169 
    170     public String getDeptId() {
    171         return deptId;
    172     }
    173 
    174     public void setDeptId(String deptId) {
    175         this.deptId = deptId;
    176     }
    177 
    178     public String getCondition() {
    179         return condition;
    180     }
    181 
    182     public void setCondition(String condition) {
    183         this.condition = condition;
    184     }
    185 
    186     public String getConditionValue() {
    187         return conditionValue;
    188     }
    189 
    190     public void setConditionValue(String conditionValue) {
    191         this.conditionValue = conditionValue;
    192     }
    193 
    194     public Employee getEmp() {
    195         return emp;
    196     }
    197 
    198     public void setEmp(Employee emp) {
    199         this.emp = emp;
    200     }
    201     public String getJobId() {
    202         return jobId;
    203     }
    204     public void setJobId(String jobId) {
    205         this.jobId = jobId;
    206     }
    207     public String getSavePath() {
    208         //struts.xml中配置savePath参数,且获取文件夹的真实地址
    209         return ServletActionContext.getRequest().getRealPath(savePath);
    210     }
    211     public void setSavePath(String savePath) {
    212         this.rePath = savePath;
    213         this.savePath = savePath;
    214     }
    215     public File getUpload() {
    216         return upload;
    217     }
    218     public void setUpload(File upload) {
    219         this.upload = upload;
    220     }
    221     public String getUploadFileName() {
    222         return uploadFileName;
    223     }
    224     public void setUploadFileName(String uploadFileName) {
    225         this.uploadFileName = uploadFileName;
    226     }
    227     public String getUploadContentType() {
    228         return uploadContentType;
    229     }
    230     public void setUploadContentType(String uploadContentType) {
    231         this.uploadContentType = uploadContentType;
    232     }
    233     public String getEmpPhoto() {
    234         return empPhoto;
    235     }
    236     public void setEmpPhoto(String empPhoto) {
    237         this.empPhoto = empPhoto;
    238     }
    239     public JobChangeService getJobChangeService() {
    240         return jobChangeService;
    241     }
    242     public void setJobChangeService(JobChangeService jobChangeService) {
    243         this.jobChangeService = jobChangeService;
    244     }
    245     public String getEmpId() {
    246         return empId;
    247     }
    248     public void setEmpId(String empId) {
    249         this.empId = empId;
    250     }
    251     public String getIds() {
    252         return ids;
    253     }
    254     public void setIds(String ids) {
    255         this.ids = ids;
    256     }
    257     public List<EmployeeBean> getEmpBeans() {
    258         return empBeans;
    259     }
    260     public void setEmpBeans(List<EmployeeBean> empBeans) {
    261         this.empBeans = empBeans;
    262     }
    263     public String getStart() {
    264         return start;
    265     }
    266     public void setStart(String start) {
    267         this.start = start;
    268     }
    269     public String getLimit() {
    270         return limit;
    271     }
    272     public void setLimit(String limit) {
    273         this.limit = limit;
    274     }
    275     
    276 }

    5.

     1 package com.hrmsys.service;
     2 
     3 import java.io.File;
     4 import java.util.List;
     5 
     6 import javax.servlet.http.HttpServletResponse;
     7 
     8 import com.hrmsys.bean.EmployeeBean;
     9 import com.hrmsys.model.Department;
    10 import com.hrmsys.model.Employee;
    11 
    12 public interface EmpService {
    13     /**
    14      * 按部门编号查询部门总人数
    15      * @param deptId
    16      * @return
    17      */
    18     int findNumByDept(Department dept);
    19     /**
    20      * 获取所有员工信息
    21      * @return 以json形式返回
    22      */
    23     String getAll(String start, String limit);
    24     /**
    25      * 按部门获取员工信息
    26      * @return 以json形式返回
    27      */
    28     String findByDeptId(String deptId);
    29     /**
    30      * 按条件查询员工表
    31      * @param deptId 部门ID
    32      * @param condition 查询条目
    33      * @param conditionValue 查询内容
    34      * @return 返回Json.toString()
    35      */
    36     String getByHQL(String deptId, String condition, String conditionValue, String start, String limit);
    37     /**
    38      * 保存员工信息
    39      * @param emp
    40      */
    41     String save(Employee emp);
    42     /**
    43      * 图片上传处理
    44      * @param savePath 保存的位置
    45      * @param upload 上传的文件
    46      * @return msg返回结果
    47      */
    48     String uploadPhoto(String savePath, File upload);
    49     /**
    50      * 判断员工是否存在
    51      * @param empId
    52      * @return
    53      */
    54     String isExistByEmpId(String empId);
    55     /**
    56      * 删除
    57      * @param ids
    58      * @return
    59      */
    60     String delete(String ids, String filePath);
    61     /**
    62      * 按empId查询
    63      * @param empId
    64      * @return
    65      */
    66     String listByEmpId(String empId);
    67     
    68     /**
    69      * 导员工pdf信息
    70      * @param empId
    71      */
    72     void pdfExport(String empId, HttpServletResponse response, String filename, String jasper);
    73     List<EmployeeBean> getEmpList(String empId);
    74     /**
    75      * 导出Excel
    76      * @param response
    77      * @param string
    78      * @param string2
    79      */
    80     void xlsExport(HttpServletResponse response, String filename);
    81     
    82     String unique(String empId);
    83 }

    6.

      1 package com.hrmsys.service.impl;
      2 
      3 import java.io.File;
      4 import java.io.FileInputStream;
      5 import java.io.FileNotFoundException;
      6 import java.io.FileOutputStream;
      7 import java.io.IOException;
      8 import java.util.ArrayList;
      9 import java.util.List;
     10 
     11 import javax.servlet.http.HttpServletResponse;
     12 
     13 import net.sf.json.JSONArray;
     14 
     15 import com.hrmsys.bean.EmployeeBean;
     16 import com.hrmsys.bean.PageBean;
     17 import com.hrmsys.dao.EmployeeDAO;
     18 import com.hrmsys.enums.StaticValue;
     19 import com.hrmsys.model.Department;
     20 import com.hrmsys.model.Employee;
     21 import com.hrmsys.service.EmpService;
     22 import com.hrmsys.util.ConditionValidate;
     23 import com.hrmsys.util.FileExport;
     24 
     25 public class EmpServiceImpl implements EmpService {
     26 
     27     private EmployeeDAO empDAO;
     28 
     29     @Override
     30     public int findNumByDept(Department dept) {
     31         List<Employee> emps = empDAO.findByDept(dept);
     32         if (emps != null)
     33             return emps.size();
     34         return 0;
     35     }
     36 
     37     public EmployeeDAO getEmpDAO() {
     38         return empDAO;
     39     }
     40 
     41     public void setEmpDAO(EmployeeDAO empDAO) {
     42         this.empDAO = empDAO;
     43     }
     44 
     45     @Override
     46     public String getAll(String start, String limit) {
     47         List<Employee> emps = empDAO.findAll(Integer.parseInt(start), Integer.parseInt(limit));
     48         String json = null;
     49         if (emps.size() != 0) {
     50             json = JSONArray.fromObject(emps).toString();
     51         }
     52         int totalProperty = empDAO.findTotal(Employee.class);
     53         return "{totalProperty:"+totalProperty+",root:"+json+"}";
     54     }
     55 
     56     @Override
     57     public String findByDeptId(String deptId) {
     58         Department dept = new Department();
     59         dept.setDeptId(deptId);
     60         List<Employee> emps = empDAO.findByDept(dept);
     61         String json = JSONArray.fromObject(emps).toString();
     62         return json;
     63     }
     64 
     65     @Override
     66     public String getByHQL(String deptId, String condition,
     67             String conditionValue, String start, String limit) {
     68         
     69         PageBean pageBean = empDAO.findByHQL(deptId, condition,
     70                 conditionValue, Integer.parseInt(start), Integer.parseInt(limit));
     71         String json = JSONArray.fromObject(pageBean.getRoot()).toString();
     72         return "{totalProperty:"+pageBean.getTotalProperty()+",root:"+json+"}";
     73     }
     74 
     75     @Override
     76     public String save(Employee emp) {
     77         if (empDAO.saveOrUpdate(emp)) {
     78             return StaticValue.SAVE_SUCCESS;
     79         }
     80         return StaticValue.SAVE_FAILURE;
     81     }
     82 
     83     @Override
     84     public String uploadPhoto(String savePath, File upload) {
     85         boolean flag = true;
     86         String msg = null;
     87         try {
     88             FileOutputStream fos = new FileOutputStream(savePath);
     89             FileInputStream fis = new FileInputStream(upload);
     90             byte[] buffer = new byte[1024];
     91             int len = 0;
     92             while ((len = fis.read(buffer)) > 0) {
     93                 fos.write(buffer, 0, len);
     94             }
     95         } catch (FileNotFoundException e) {
     96             flag = false;
     97             e.printStackTrace();
     98         } catch (IOException e) {
     99             flag = false;
    100             e.printStackTrace();
    101         } finally {
    102             if (flag) {
    103                 msg = StaticValue.UPLOAD_SUCCESS;
    104             } else {
    105                 msg = StaticValue.UPLOAD_FAILURE;
    106             }
    107         }
    108         return msg;
    109     }
    110 
    111     @Override
    112     public String isExistByEmpId(String empId) {
    113         Employee emp = empDAO.findByEmpId(empId);
    114         if(null != emp){
    115             return emp.getEmpName();
    116         }
    117         return "";
    118     }
    119 
    120     @Override
    121     public String unique(String empId) {
    122         Employee emp = empDAO.findByEmpId(empId);
    123         if(null != emp){
    124             return JSONArray.fromObject(emp).toString();
    125         }
    126         return "";
    127     }
    128     
    129     @Override
    130     public String delete(String ids, String filePath) {
    131         String[] empIds = ids.split(",");
    132         for(String empId : empIds){
    133             Employee emp = empDAO.findByEmpId(empId);
    134             String urlPath = emp.getEmpPhoto();
    135             if(urlPath.indexOf("default.gif") < 0){ //默认图片不删除 
    136                 int position = urlPath.lastIndexOf("/");
    137                 File file=new File(filePath +"\"+ urlPath.substring(position, urlPath.length()));
    138                  if(file.exists() && file.isFile())
    139                   file.delete();
    140             }
    141         }
    142         if(empDAO.deleteByEmpId(empIds)){
    143             return StaticValue.DELETE_SUCCESS;
    144         }
    145         return StaticValue.DELETE_FAILURE;
    146     }
    147 
    148     @Override
    149     public String listByEmpId(String empId) {
    150         Employee emp = empDAO.findByEmpId(empId);
    151         return JSONArray.fromObject(emp).toString();
    152     }    
    153 
    154     public List<EmployeeBean> packageEmp(List<Employee> emps) {
    155         List<EmployeeBean> empBeans = new ArrayList<EmployeeBean>();
    156         for(Employee emp : emps){
    157             EmployeeBean empBean = new EmployeeBean();
    158             empBean.setEmpAccount(emp.getEmpAccount());
    159             empBean.setEmpAddress(emp.getEmpAddress());
    160             empBean.setEmpBank(emp.getEmpBank());
    161             empBean.setEmpBirth(emp.getEmpBirth());
    162             empBean.setEmpEducation(emp.getEmpEducation());
    163             empBean.setEmpEmail(emp.getEmpEmail());
    164             empBean.setEmpId(emp.getEmpId());
    165             empBean.setEmpIdcard(emp.getEmpIdcard());
    166             empBean.setEmpMobilephone(emp.getEmpMobilephone());
    167             empBean.setEmpName(emp.getEmpName());
    168             empBean.setEmpNation(emp.getEmpNation());
    169             empBean.setEmpNationality(emp.getEmpNation());
    170             empBean.setEmpOrigin(emp.getEmpOrigin());
    171             empBean.setEmpPhoto(emp.getEmpPhoto());
    172             empBean.setEmpPost(emp.getEmpPost());
    173             empBean.setEmpProfession(emp.getEmpProfession());
    174             empBean.setEmpQq(emp.getEmpQq());
    175             empBean.setEmpSchool(emp.getEmpSchool());
    176             if(emp.getEmpSex() == 1){
    177                 empBean.setEmpSex("男");
    178             }else{
    179                 empBean.setEmpSex("女");
    180             }
    181             empBean.setEmpTelephone(emp.getEmpTelephone());
    182             empBean.setJob(emp.getJob().getJobName());
    183             empBean.setDept(emp.getDepartment().getDeptName());
    184             empBeans.add(empBean);
    185         }
    186     
    187         return empBeans;
    188     }
    189 
    190     @Override
    191     public void pdfExport(String empId, HttpServletResponse response, String filename, String jasper) {
    192         Employee emp = null;
    193         List<Employee> emps = new ArrayList<Employee>();
    194         if(!"all".equals(empId) && ConditionValidate.isEmpty(empId)){
    195             emp = empDAO.findByEmpId(empId);
    196             emps.add(emp);
    197         }else{
    198             emps = empDAO.findAll(Employee.class);
    199         }
    200         List<EmployeeBean> empBeans = packageEmp(emps);
    201         FileExport fileExport = new FileExport();
    202         fileExport.exportPDF(empBeans, filename,jasper, response);
    203         
    204     }
    205 
    206     @Override
    207     public List<EmployeeBean> getEmpList(String empId) {
    208         List<Employee> emps = new ArrayList<Employee>();
    209         Employee emp = empDAO.findByEmpId(empId);
    210         emps.add(emp);
    211         return this.packageEmp(emps);
    212     }
    213 
    214     @Override
    215     public void xlsExport(HttpServletResponse response, String filename) {
    216         List<Employee> emps = empDAO.findAll(Employee.class);
    217         List<EmployeeBean> empBeans = this.packageEmp(emps);
    218         FileExport fileExport = new FileExport();
    219         fileExport.exportXls(empBeans, filename, response);
    220     }
    221 
    222 }

    8.

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
     3 <struts>
     4     <constant name="struts.i18n.encoding" value="UTF-8"/>
     5     <constant name="struts.devMode" value="false"/>
     6     <package name="default" extends="struts-default,jasperreports-default" namespace="/">
     7         <global-results >
     8             <result name="input">error.jsp</result>
     9         </global-results>
    10         
    11         <action name="user_*" class="userAction" method="{1}">
    12             <result name="success" type="redirect">jsp/main.jsp</result>
    13             <result name="input">index.jsp</result>
    14             <result name="exit" type="redirect">index.jsp</result>
    15         </action>
    16         <action name="menu" class="menuAction" method="load"></action>
    17         <action name="dept_*" class="deptAction" method="{1}"></action>
    18         <action name="job_*" class="jobAction" method="{1}"></action>
    19         <action name="emp_*" class="empAction" method="{1}">
    20             <param name="savePath">photo</param>
    21             <result name="detailPdf" type="jasper">
    22                 <param name="location">jasperreport/detailEmp.jasper</param>
    23                 <param name="dataSource">empBeans</param>
    24                 <param name="format">PDF</param>
    25             </result>
    26             <result name="simplePdf" type="jasper">
    27                 <param name="location">jasperreport/simpleEmp.jasper</param>
    28                 <param name="dataSource">empBeans</param>
    29                 <param name="format">PDF</param>
    30             </result>
    31         </action>
    32         <action name="jobChange_*" class="jobChangeAction" method="{1}"></action>
    33         <action name="rec_*" class="recruitmentAction" method="{1}"></action>
    34         <action name="train_*" class="trainAction" method="{1}"></action>
    35         <action name="tRecord_*" class="tRecordAction" method="{1}"></action>
    36         <action name="ePunish_*" class="ePunishAction" method="{1}"></action>
    37         <action name="revenue_*" class="revenueAction" method="{1}"></action>
    38         <action name="boon_*" class="boonAction" method="{1}"></action>
    39         <action name="salBasic_*" class="salaryBasicAction" method="{1}"></action>
    40         <action name="salary_*" class="salaryAction" method="{1}">
    41             <result name="salView" type="jasper">
    42                 <param name="location">jasperreport/salary.jasper</param>
    43                 <param name="dataSource">salBeans</param>
    44                 <param name="format">PDF</param>
    45             </result>
    46         </action>
    47         <action name="permission_*" class="permissionAction" method="{1}"></action>
    48         <action name="role_*" class="roleAction" method="{1}"></action>
    49         <action name="rolePer_*" class="rolePermissionAction" method="{1}"></action>
    50         <action name="recruitment_*" class="recruitmentAction" method="{1}"></action>
    51         <action name="*">
    52             <result>{1}.jsp</result>
    53         </action>
    54     </package>
    55 </struts>    

    8.

      1 package com.hrmsys.util;
      2 
      3 import java.io.File;
      4 import java.io.IOException;
      5 import java.io.UnsupportedEncodingException;
      6 import java.util.List;
      7 
      8 import javax.servlet.ServletOutputStream;
      9 import javax.servlet.http.HttpServletResponse;
     10 
     11 import net.sf.jasperreports.engine.JRDataSource;
     12 import net.sf.jasperreports.engine.JRExporterParameter;
     13 import net.sf.jasperreports.engine.JasperFillManager;
     14 import net.sf.jasperreports.engine.JasperPrint;
     15 import net.sf.jasperreports.engine.JasperReport;
     16 import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
     17 import net.sf.jasperreports.engine.export.JRPdfExporter;
     18 import net.sf.jasperreports.engine.util.JRLoader;
     19 
     20 import org.apache.poi.hssf.usermodel.HSSFCell;
     21 import org.apache.poi.hssf.usermodel.HSSFRow;
     22 import org.apache.poi.hssf.usermodel.HSSFSheet;
     23 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
     24 import org.apache.struts2.ServletActionContext;
     25 
     26 import com.hrmsys.bean.EmployeeBean;
     27 
     28 public class FileExport {
     29     /**
     30      * pdf导出
     31      * 
     32      * @param list
     33      *            数据集合
     34      * @param filename
     35      *            导出的文件名称
     36      * @param response
     37      *            HttpServletResponse
     38      * @return
     39      */
     40     public void exportPDF(List list, String filename, String jaspername,
     41             HttpServletResponse response) {
     42         ServletOutputStream sos = null;
     43         try {
     44             String path = ServletActionContext.getServletContext().getRealPath(
     45                     "").replace("\", "/");
     46             File file = new File(path + "/jasperreport/" + jaspername);
     47             //数据源就构造完毕
     48             JRDataSource dataSource = new JRBeanCollectionDataSource(list);
     49             //加载jasper
     50             JasperReport report = (JasperReport) JRLoader.loadObject(file
     51                     .getPath());
     52             //将数据和xml组合,生成需要的打印文件
     53             JasperPrint print = JasperFillManager.fillReport(report, null,
     54                     dataSource);
     55             ////生成我们的导出类JRPdfExporter 来自JRExporter  
     56             JRPdfExporter exporter = new JRPdfExporter();
     57             response.setContentType("application/pdf");
     58             response.setHeader("Content-Disposition", "attachment;filename="
     59                     + new String(filename.getBytes(), "ISO8859-1"));//转为此不会中文乱码
     60             sos = response.getOutputStream();
     61             ///设JasperPrint参数  
     62             exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
     63             //设置输入的PDF文件放在什么地方  
     64             exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, sos);
     65             //            //输出  
     66             exporter.exportReport();
     67         } catch (Exception e) {
     68             e.printStackTrace();
     69         } finally {
     70             if (sos != null) {
     71                 try {
     72                     sos.close();
     73                 } catch (IOException e) {
     74                     e.printStackTrace();
     75                 }
     76             }
     77         }
     78     }
     79 
     80 //    /**
     81 //     * 把字符串转成utf8编码,保证中文文件名不会乱码
     82 //     * new String(filename.getByte("UTF-8"),"UTF-8");不行
     83 //     * @param s
     84 //     * @return foxmail
     85 //     */
     86 //    public static String toUtf8String(String s) {
     87 //        StringBuffer sb = new StringBuffer();
     88 //        for (int i = 0; i < s.length(); i++) {
     89 //            char c = s.charAt(i);
     90 //            if (c >= 0 && c <= 255) {
     91 //                sb.append(c);
     92 //            } else {
     93 //                byte[] b;
     94 //                try {
     95 //                    b = Character.toString(c).getBytes("utf-8");
     96 //                } catch (Exception ex) {
     97 //                    System.out.println(ex);
     98 //                    b = new byte[0];
     99 //                }
    100 //                for (int j = 0; j < b.length; j++) {
    101 //                    int k = b[j];
    102 //                    if (k < 0)
    103 //                        k += 256;
    104 //                    sb.append("%" + Integer.toHexString(k).toUpperCase());
    105 //                }
    106 //            }
    107 //        }
    108 //        return sb.toString();
    109 //    }
    110     /**
    111      * jasperReport导出Excel 此方式导出的excel没有网格线(好像直接用流导出方式都没有)
    112      * 在此直接用poi导出,当然jasperReport导出中也应用了poi(需要加入poi的jar包)
    113      */
    114     public void exportXls(List<EmployeeBean> list, String filename, HttpServletResponse response) {
    115         //创建一工作空间
    116         HSSFWorkbook workbook = new HSSFWorkbook();
    117         //创建一表单
    118         HSSFSheet sheet = workbook.createSheet(filename);
    119         //创建表题行
    120         HSSFRow headerRow = sheet.createRow(0);
    121         for(int i = 0; i < 20; i++){
    122             HSSFCell headerCell  = headerRow.createCell(i);
    123             switch(i){
    124             case 0 :
    125                 headerCell.setCellValue("员工工号"); break;
    126             case 1 :
    127                 headerCell.setCellValue("员工姓名"); break;
    128             case 2 :
    129                 headerCell.setCellValue("性别"); break;
    130             case 3 :
    131                 headerCell.setCellValue("出生日期"); break;
    132             case 4 :
    133                 headerCell.setCellValue("地址"); break;
    134             case 5:
    135                 headerCell.setCellValue("邮编"); break;
    136             case 6 :
    137                 headerCell.setCellValue("电话"); break;
    138             case 7 :
    139                 headerCell.setCellValue("手机"); break;
    140             case 8 :
    141                 headerCell.setCellValue("QQ"); break;
    142             case 9 :
    143                 headerCell.setCellValue("email"); break;
    144             case 10 :
    145                 headerCell.setCellValue("银行账号"); break;
    146             case 11 :
    147                 headerCell.setCellValue("身份证号"); break;
    148             case 12 :
    149                 headerCell.setCellValue("部门"); break;
    150             case 13 :
    151                 headerCell.setCellValue("职位"); break;
    152             case 14 :
    153                 headerCell.setCellValue("国籍"); break;
    154             case 15 :
    155                 headerCell.setCellValue("籍贯"); break;
    156             case 16 :
    157                 headerCell.setCellValue("民族"); break;
    158             case 17 :
    159                 headerCell.setCellValue("毕业学校"); break;
    160             case 18 :
    161                 headerCell.setCellValue("学历"); break;
    162             case 19 :
    163                 headerCell.setCellValue("专业"); break;
    164             }
    165             }
    166             for(int i = 0; i < list.size(); i++){
    167                 HSSFRow row = sheet.createRow(i+1);
    168                 EmployeeBean empBean = list.get(i);
    169                 HSSFCell empIdCell = row.createCell(0);
    170                 empIdCell.setCellValue(empBean.getEmpId());
    171                 HSSFCell empNameCell = row.createCell(1);
    172                 empNameCell.setCellValue(empBean.getEmpName());
    173                 HSSFCell empSexCell = row.createCell(2);
    174                 empSexCell.setCellValue(empBean.getEmpSex());
    175                 HSSFCell empBirthCell = row.createCell(3);
    176                 empBirthCell.setCellValue(empBean.getEmpBirth());
    177                 HSSFCell empAddressCell = row.createCell(4);
    178                 empAddressCell.setCellValue(empBean.getEmpAddress());
    179                 HSSFCell empPostCell = row.createCell(5);
    180                 empPostCell.setCellValue(empBean.getEmpPost());
    181                 HSSFCell empTelephoneCell = row.createCell(6);
    182                 empTelephoneCell.setCellValue(empBean.getEmpTelephone());
    183                 HSSFCell empMobilephoneCell = row.createCell(7);
    184                 empMobilephoneCell.setCellValue(empBean.getEmpMobilephone());
    185                 HSSFCell empQqphoneCell = row.createCell(8);
    186                 empQqphoneCell.setCellValue(empBean.getEmpQq());
    187                 HSSFCell empEmailCell = row.createCell(9);
    188                 empEmailCell.setCellValue(empBean.getEmpEmail());
    189                 HSSFCell empAccountCell = row.createCell(10);
    190                 empAccountCell.setCellValue(empBean.getEmpAccount());
    191                 HSSFCell empIdcardCell = row.createCell(11);
    192                 empIdcardCell.setCellValue(empBean.getEmpIdcard());
    193                 HSSFCell deptCell = row.createCell(12);
    194                 deptCell.setCellValue(empBean.getDept());
    195                 HSSFCell jobCell = row.createCell(13);
    196                 jobCell.setCellValue(empBean.getJob());
    197                 HSSFCell empNationalityCell = row.createCell(14);
    198                 empNationalityCell.setCellValue(empBean.getEmpNationality());
    199                 HSSFCell empOriginCell = row.createCell(15);
    200                 empOriginCell.setCellValue(empBean.getEmpOrigin());
    201                 HSSFCell empNationCell = row.createCell(16);
    202                 empNationCell.setCellValue(empBean.getEmpNation());
    203                 HSSFCell empSchoolCell = row.createCell(17);
    204                 empSchoolCell.setCellValue(empBean.getEmpSchool());
    205                 HSSFCell empEducationCell = row.createCell(18);
    206                 empEducationCell.setCellValue(empBean.getEmpEducation());
    207                 HSSFCell empProfessionCell = row.createCell(19);
    208                 empProfessionCell.setCellValue(empBean.getEmpProfession());
    209             }
    210             response.setContentType("application/xls");
    211             ServletOutputStream sos = null;
    212             try {
    213                 response.setHeader("Content-Disposition", "attachment;filename="
    214                         + new String(filename.getBytes(), "ISO8859-1"));
    215                 sos = response.getOutputStream();
    216                 workbook.write(sos);
    217             } catch (Exception e) {
    218                 e.printStackTrace();
    219             }finally{
    220                 if(sos != null){
    221                     try {
    222                         sos.close();
    223                     } catch (IOException e) {
    224                         e.printStackTrace();
    225                     }
    226                 }
    227             }
    228         }
    229 }
  • 相关阅读:
    设置 添加 erlang 代码路径 工作路径
    [转]inline,__inline,__forceinline 关于函数内联及相关关键字的详细说明
    [转]Delphi 2010 3513正式版破解
    IBM developerWorks 文章转载系列(二)
    Cassandra和HBase主要设计思路对比
    Storm : Twitter的实时数据处理工具(转载)
    Oracle NoSQL Database (转载)
    MapReduce Hold不住? (转载)
    [InfoQ]Twitter Storm:开源实时Hadoop (转载)
    数据分析与处理之一(大规模数据分析架构)
  • 原文地址:https://www.cnblogs.com/sharpest/p/7661752.html
Copyright © 2011-2022 走看看