三大框架集萃

(一、数据批量导入)

一、数据信息批量导入注意点:

       1<form name="form1" action="提交的Action处理类" method="post"enctype="multipart/form-data">

              <input type="file" name="excel"/>

          </form>

       注意:若没有enctype=” multipart/form-data”则:

       2、声明上传文件类型时注意:

Private File excel;//(excel来自form表单的name属性)

Private String excelContentType;//文件上传类型,格式必须是form里的name+contentType;

Private String excelFileName;//文件上传的名字,格式必须是form里的name+FileName;

Private String path;//文件上传的路径

       3、涉及到Excel表和数据库中的字段进行强制转换时:不用包装类如Integer,直接用基本类型如int进行转换。如图所示:

 

 

(二)FrameeSet 布局

一、jsp界面中

<framesetcols="18%,*">

  <framename="leftFrame"src="empAction!left.action" noresize scrolling="no">

  <framename="rightFrame"src="center.jsp">

  </frameset>

1noresize scrolling="no"表示左右分好的比例不可拖动。

2、当涉及到利用Ajax,实现无刷新技术时,不能直接src到某个jsp界面中,需src="empAction!left.action"到一个空的Action ,通过Action跳转到此jsp界面中。

 

 

(三)全选、反选、单个信息异步刷新案例

       

//选择项

<inputtype="checkbox"name="Ids"id="id"value="<s:propertyvalue="#request.emp.employeementId"/>"/>

             <s:property value="#emp.employeementName"/>

//Ajax异步刷新删除操作

<a href="javaScript:deleteInfo(<s:property value="#emp.employeementId"/>);" id="<s:property value="#emp.employeementId"/>">删除</a>

 

     }

批量导入实例代码:

package com.mstanford.action;

 

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

 

import javax.servlet.ServletContext;

 

import org.apache.poi.hssf.usermodel.HSSFCell;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.poifs.filesystem.POIFSFileSystem;

import org.apache.struts2.ServletActionContext;

 

import com.mstanford.entity.DepartMent;

import com.mstanford.entity.EmployeeMent;

import com.mstanford.entity.UserRole;

import com.mstanford.service.impl.EmployeeMentService;

import com.mstanford.util.ExcelCellType;

 

public class ImportExcell extends BaseAction{

       //文件对象名、文件类型、文件路径、上传文件名

       private File excel;

       private String excelContentType;

       private String path;

       private String excelFileName;

       //对象

       private UserRole userRole=new UserRole();

       private DepartMent departMent=new DepartMent();

      

       private EmployeeMentService employeeService;

      

       public EmployeeMentService getEmployeeService() {

              return employeeService;

       }

       public void setEmployeeService(EmployeeMentService employeeService) {

              this.employeeService = employeeService;

       }

       public File getExcel() {

              return excel;

       }

       public void setExcel(File excel) {

              this.excel = excel;

       }

       public String getExcelContentType() {

              return excelContentType;

       }

       public void setExcelContentType(String excelContentType) {

              this.excelContentType = excelContentType;

       }

       public String getExcelFileName() {

              return excelFileName;

       }

       public void setExcelFileName(String excelFileName) {

              this.excelFileName = excelFileName;

       }

      

       public String getPath() {

              return path;

       }

       public void setPath(String path) {

              this.path = path;

       }

       public String execute(){

              try {

                     // 得到上传文件在服务器上的存储目录,并写入到指定文件中

                     ServletContext ctx = ServletActionContext.getServletContext();

                     path = ctx.getRealPath("/WEB-INF/path") +"/"+ this.excelFileName;    

                    

                    

                     // 得到上传文件输入流

                     FileInputStream fin = new FileInputStream(this.getExcel());

                     FileOutputStream fout = new FileOutputStream(path);

                    

                     //较大文件上传

                     int b = fin.read();

                     while (b != -1) {

                            fout.write(b);

                            b = fin.read();

                     }     

                     //调用importExcelToDataBase方法读取文件内容

                     this.importData();              

                     fin.close();

                     fout.close();

                     this.excel.delete();

                     return "success";

              } catch (Exception e) {

                     e.printStackTrace();

                     return "error";

              }

             

       }

      

      

       /**

        * 读取数据并导入

        */

      

       public void importData(){

             

              File checkFile=new File(this.path);

              if(checkFile.exists()){

                     try {

                            //获取上传的文件

                            POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(checkFile));                     

                            //创建工作平台

                            HSSFWorkbook wb = new HSSFWorkbook(fs);

                            //获取指定位置对象(iSheet为工作表的位置索引)

                            HSSFSheet sheet = wb.getSheetAt(0);

                            //获取最后一行索引(从0开始)

                            int last = sheet.getLastRowNum();

                            //根据表模板定义的数据读取的起始位置

                            Integer index=new Integer(1);

                            for (index=1;index<=last;index++) {

                                   HSSFRow row=sheet.getRow(index);

                                   EmployeeMent emp=new EmployeeMent();

                                   //获取用户名

                                   emp.setEmployeementName(row.getCell(1).getStringCellValue());

                                   //获取登录用户名

                                   emp.setEmployeementLoginName(row.getCell(2).getStringCellValue());

                                   //获取登录的密码

                                  

                                   if(row.getCell(3).getCellType()==HSSFCell.CELL_TYPE_NUMERIC){

                                          emp.setEmployeementPassword(String.valueOf(row.getCell(3).getNumericCellValue()));

                                   }

                                   else{

                                          emp.setEmployeementPassword(row.getCell(3).getStringCellValue());

                                   }

                                  

                                   //获取性别

                                   emp.setEmployeementSex(row.getCell(4).getStringCellValue());

                                  

                                   //获取年龄

                                   if(row.getCell(5).getCellType()==HSSFCell.CELL_TYPE_NUMERIC){

                                          emp.setEmployeementAge((int)row.getCell(5).getNumericCellValue());

                                   }

                                   else{

                                          emp.setEmployeementAddress(row.getCell(5).getStringCellValue());

                                   }                                 

                                   //QQ

                                   if(row.getCell(6).getCellType()==HSSFCell.CELL_TYPE_NUMERIC){

                                          emp.setEmployeementQQ(String.valueOf(row.getCell(6).getNumericCellValue()));

                                   }

                                   else{

                                          emp.setEmployeementQQ(row.getCell(6).getStringCellValue());

                                   }

                                  

                                   //电话

                                   if(row.getCell(7).getCellType()==HSSFCell.CELL_TYPE_NUMERIC){

                                          emp.setEmployeementPhone(String.valueOf(row.getCell(7).getNumericCellValue()));

                                   }

                                   else{

                                          emp.setEmployeementPhone(row.getCell(7).getStringCellValue());

                                   }

                                   //邮箱

                                   if(row.getCell(8).getCellType()==HSSFCell.CELL_TYPE_NUMERIC){

                                          emp.setEmployeementEmail(String.valueOf(row.getCell(8).getNumericCellValue()));

                                   }

                                   else{

                                          emp.setEmployeementEmail(row.getCell(8).getStringCellValue());

                                   }

                                   //家庭住址

                                   emp.setEmployeementAddress(row.getCell(9).getStringCellValue());

                                   //班级

                                   if(row.getCell(10).getCellType()==HSSFCell.CELL_TYPE_NUMERIC){

                                          emp.setEmployeementClass(String.valueOf(row.getCell(10).getNumericCellValue()));

                                   }

                                   else{

                                          emp.setEmployeementClass(row.getCell(10).getStringCellValue());

                                   }

                                   //获取部门信息

                                   String depart;

                                   depart=row.getCell(11).getStringCellValue();

                                   departMent=employeeService.getDepartMent(depart);

                                   if(departMent!=null){

                                          emp.setDepartMent(departMent);

                                   }

                                   else{

                                          DepartMent departName=new DepartMent();

                                          departName.setDepartmentName(depart);

                                   }

                                   //获取角色信息

                                   String userRoleName;

                                   userRoleName=row.getCell(12).getStringCellValue();

                                   userRole=employeeService.getUserRole(userRoleName);

                                   if(userRole!=null){

                                          emp.setUserRole(userRole);

                                   }

                                   else{

                                          UserRole role=new UserRole();

                                          role.setUserRoleName(userRoleName);

                                   }

                                  

                                   employeeService.addEmployeeMent(emp);

                            }

                     } catch (Exception e) {

                            e.printStackTrace();

                     }

              }

       }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值