package accp.struts.lxl.action;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.actions.DispatchAction;
import org.apache.struts.upload.FormFile;
import accp.struts.lxl.biz.UsersBiz;
import accp.struts.lxl.com.MyUtil;
import accp.struts.lxl.pojo.Users;
public class UsersAction extends DispatchAction
{
public UsersBiz ubz=new UsersBiz();
public ActionForward doLogin(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception
{
DynaActionForm dform=(DynaActionForm)form;
Users user=(Users)dform.get("user");
Users valiUser=ubz.checkUserByNameAndPass(user);
if(null==valiUser) return mapping.findForward("login");
request.getSession().setAttribute("currentUser", valiUser);
return mapping.findForward("index");
//return doRead(mapping, form, request, response);
}
public ActionForward doRead(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception
{
List<Users> users=ubz.readAllUsers();
request.setAttribute("userlist", users);
System.out.println("进入doRead,保存用户集合");
return mapping.findForward("userlist");
}
/**
* 跳转到添加用户页面��
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward toCreate(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception
{
request.setAttribute("hobbies", MyUtil.hobbies);
//密钥,保存一个令牌标识
saveToken(request);
System.out.println("密钥,保存一个令牌标识");
System.out.println("跳转到添加用户页面");
return mapping.findForward("createUser");
}
/**
*
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward doCreate(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception
{
System.out.println("进入doCreate");
DynaActionForm dform=(DynaActionForm)form;
if(isTokenValid(request))
{
System.out.println("新密钥");
Users user=(Users)dform.get("user");
String [] userhobbies=dform.getStrings("userhobbies");
if(null!=userhobbies && userhobbies.length>0)
{
String hobby="";
for (String h : userhobbies) {
hobby+=h+",";
}
user.setHobby(hobby.substring(0,hobby.length()-1));
}
//获得客户端上传的文件
FormFile file=(FormFile)dform.get("userpic");
System.out.println("客户端上传的文件名:"+file.getFileName());
if(!"".equals(file.getFileName()))
{
//获得上传目录路径
String uploadPath=getServlet().getServletContext().getRealPath("/upload/");
System.out.println("上传目录路径"+uploadPath);
//获得上传文件后缀名
String extensionName=file.getFileName().substring(file.getFileName().lastIndexOf("."));
System.out.println("上传文件后缀名"+extensionName);
String fileFullName=uploadPath+"//"+ user.getLoginName()+extensionName;
System.out.println("完整文件路径名:"+fileFullName);
//用文件流来处理上传的文件
OutputStream fos=null;
try {
fos=new FileOutputStream(fileFullName);
//以字节方式往流中写东西
fos.write(file.getFileData());
System.out.println("以字节方式往流中写东西");
fos.flush();
} catch (RuntimeException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}finally
{
if(null!=fos) fos.close();
}
user.setPic(user.getLoginName()+extensionName);
System.out.println("保存图片名");
}
ubz.createUser(user);
//重置令牌
resetToken(request);
System.out.println("重置令牌reset");
}else
{
saveToken(request);
System.out.println("保存令牌save");
}
System.out.println("调doRead()");
return doRead(mapping, form, request, response);
}
}