Strut2 annotation配置时action到另一个action跳转参数传递

struts2采用annotation配置时

我们采用params来传递参数

      params使用的时类似于键值对的方式传递

      params = {"mgs", "${yudingurl}","a","a1" }

package com.yidian.web.frontuser;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.springframework.beans.factory.annotation.Autowired;
import org.springside.modules.orm.Page;
import org.springside.modules.orm.PropertyFilter;
import org.springside.modules.utils.web.struts2.Struts2Utils;

//import com.yidian.common.email.Mail;
import com.yidian.common.email.Mail;
import com.yidian.common.util.AjaxUtil;
import com.yidian.common.util.Constants;
import com.yidian.common.util.Constants_Yidian;
import com.yidian.common.util.LoginStatus;
import com.yidian.common.util.MathUtils;
import com.yidian.common.util.Md5Util;
import com.yidian.common.util.PageSize;
import com.yidian.common.util.RandomUtil;
import com.yidian.common.util.StringUtils;
import com.yidian.dao.mybatis.information.misc.po.miscPo;
import com.yidian.dao.mybatis.vipcustomers.vipcustomers.po.customerInfoPo;
import com.yidian.entity.account.ForgPassInfo;
import com.yidian.entity.car.ReservationInfo;
import com.yidian.entity.car.CustomerInfo; //import com.yidian.entity.car.WebsiteBaseinfo;
import com.yidian.entity.temp.IndexShow;
import com.yidian.service.ServiceException;
import com.yidian.service.helpsetting.HelpSettingManager;
import com.yidian.service.information.misc.MiscManager; //import com.yidian.service.information.websitebase.WebsiteBaseinfoManager;
//import com.yidian.service.order.longtermrental.ReserInfoManager;
import com.yidian.service.systemuser.user.AccountManager;
import com.yidian.service.vipcustomers.vipcustomers.CustomerInfoManager;
import com.yidian.service.vipcustomers.vipcustomers.ForgPassManager;
import com.yidian.web.CrudActionSupport;

@Namespace("/frontuser")
@Results( {
		@Result(name = CrudActionSupport.RELOAD, location = "frontuser.action", type = "redirect"),
		@Result(name = "register", location = "frontuser!input.action", type = "redirect"),
		@Result(name = "tologin", location = "/WEB-INF/content/frontuser/login.jsp"),
		@Result(name = "save", location = "/WEB-INF/content/frontuser/login.jsp"),
		@Result(name = "reserlist", location = "/WEB-INF/content/person/shortrent-order.jsp"),
		@Result(name = "order", location = "/person/reservation!member.action", type = "redirect"),
		@Result(name = "zhmm", location = "/WEB-INF/content/frontuser/pw_default.jsp"),
		@Result(name = "shixiao", location = "/WEB-INF/content/frontuser/pw_wuxiao.jsp"),
		@Result(name = "zccg", location = "frontuser!login.action", type = "redirect"),
		@Result(name = "forgetpasscom", location = "/WEB-INF/content/frontuser/forgetpass.jsp"),
		@Result(name = "yididenglu", location = "/WEB-INF/content/frontuser/yididenglu.jsp"),
		@Result(name = "updateinfo", location = "/person/reservation!member.action", type = "redirect", params = {
				"mgs", "${yudingurl}" })

})
public class FrontuserAction extends CrudActionSupport<CustomerInfo> {
	private static final long serialVersionUID = -4052047494894591406L;
	private Long id;
	private String url;
	private CustomerInfo entity;
	private ForgPassInfo forgPassInfo;
	private Page<ReservationInfo> page = new Page<ReservationInfo>(PageSize
			.getPagesize());
	private CustomerInfoManager customerInfoManager;
	private MiscManager miscManager;
	private ForgPassManager forgPassManager;
	private AccountManager accountManager;
	private String prompt = null;// 提示
	private IndexShow indexShow = new IndexShow();
	private HelpSettingManager helpManager;

	private String yudingurl;

	public String getPrompt() {
		return prompt;
	}

	public void setPrompt(String prompt) {
		this.prompt = prompt;
	}

	private List<miscPo> zjlxlist;

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public Page<ReservationInfo> getPage() {
		return page;
	}

	public void setPage(Page<ReservationInfo> page) {
		this.page = page;
	}

	public List<miscPo> getZjlxlist() {
		return zjlxlist;
	}

	public void setZjlxlist(List<miscPo> zjlxlist) {
		this.zjlxlist = zjlxlist;
	}

	@Autowired
	public void setMiscManager(MiscManager miscManager) {
		this.miscManager = miscManager;
	}

	public AccountManager getAccountManager() {
		return accountManager;
	}

	@Autowired
	public void setAccountManager(AccountManager accountManager) {
		this.accountManager = accountManager;
	}

	public ForgPassManager getForgPassManager() {
		return forgPassManager;
	}

	@Autowired
	public void setForgPassManager(ForgPassManager forgPassManager) {
		this.forgPassManager = forgPassManager;
	}

	public ForgPassInfo getForgPassInfo() {
		return forgPassInfo;
	}

	public void setForgPassInfo(ForgPassInfo forgPassInfo) {
		this.forgPassInfo = forgPassInfo;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public CustomerInfo getEntity() {
		return entity;
	}

	public void setEntity(CustomerInfo entity) {
		this.entity = entity;
	}

	public CustomerInfoManager getCustomerInfoManager() {
		return customerInfoManager;
	}

	public void setCustomerInfoManager(CustomerInfoManager customerInfoManager) {
		this.customerInfoManager = customerInfoManager;
	}

	public IndexShow getIndexShow() {
		return indexShow;
	}

	public void setIndexShow(IndexShow indexShow) {
		this.indexShow = indexShow;
	}

	public HelpSettingManager getHelpManager() {
		return helpManager;
	}

	@Autowired
	public void setHelpManager(HelpSettingManager helpManager) {
		this.helpManager = helpManager;
	}

	public String getYudingurl() {
		return yudingurl;
	}

	public void setYudingurl(String yudingurl) {
		this.yudingurl = yudingurl;
	}

	@Override
	public String delete() throws Exception {
		try {
			customerInfoManager.deleteCustomerInfo(id);
			addActionMessage("删除成功");
		} catch (ServiceException e) {
			logger.error(e.getMessage(), e);
			addActionMessage("删除失败");
		}
		return RELOAD;
	}

	/**
	 * 支持使用Jquery.validate Ajax检验用户名是否重复.
	 */
	public String checkLoginName() {
		// HttpServletRequest request = ServletActionContext.getRequest();
		// String newLoginName = request.getParameter("loginName");
		// String oldLoginName = request.getParameter("oldLoginName");
		//
		// if (customerInfoManager.isEmailNameUnique(newLoginName,
		// oldLoginName)) {
		// Struts2Utils.renderText("true");
		// } else {
		// Struts2Utils.renderText("false");
		// }
		// 因为直接输出内容而不经过jsp,因此返回null.
		return null;
	}

	@Override
	public String input() throws Exception {
		zjlxlist = miscManager.find("证件类型");
		entity = new CustomerInfo();
		Struts2Utils.getRequest().setAttribute("url",
				Struts2Utils.getParameter("url"));
		indexShow.setHelps(helpManager.findAll());
		return INPUT;
	}

	// -- CRUD Action 函数 --//
	@Override
	public String list() throws Exception {
		List<PropertyFilter> filters = PropertyFilter
				.buildFromHttpRequest(Struts2Utils.getRequest());
		// 设置默认排序方式
		if (!page.isOrderBySetted()) {
			page.setOrderBy("id");
			page.setOrder(Page.ASC);
		}
		indexShow.setHelps(helpManager.findAll());
		return "reserlist";
	}

	@Action(value = "/register")
	public String cart_empty() {
		indexShow.setHelps(helpManager.findAll());
		return "register";
	}

	@Action(value = "/tologin")
	public String tologin() {
		// readerCookie();
		Struts2Utils.getRequest().setAttribute("appid", Constants.APP_ID);
		indexShow.setHelps(helpManager.findAll());
		return "tologin";
	}

	@Override
	protected void prepareModel() throws Exception {
		if (id != null) {
			entity = customerInfoManager.getCustomerInfo(id);
		} else {
			entity = new CustomerInfo();
		}

	}

	@Override
	public String save() throws Exception {
		try {
			// entity.setI_cust_level(websiteBaseinfoManager
			// .getWebsiteBaseinfo(1l).getI_webreg_memlevel());
			if ("13596439671".equals(entity.getS_cust_phone())
					|| (entity.getS_cust_phone() == "12345678910")) {
				entity.setS_cust_phone("");
			}
			entity.setS_photo("/com.yidian/yzc_admin_images/yzc_admin1.png");// 注册时给用户设置默认的头像信息
			customerInfoManager.saveCustomerInfo(entity);
			addActionMessage("保存成功");
			LoginStatus.loginRepeat(Struts2Utils.getSession().getId(), entity
					.getId());
			// clearcompany();
			Struts2Utils.getSession().setAttribute("username",
					entity.getS_cust_name());
			Struts2Utils.getSession().setAttribute("nickname",
					entity.getS_cust_name());// 修改呢称未设置时出现的null错误
			Struts2Utils.getSession().setAttribute("userid", entity.getId());
			// Struts2Utils.getSession().setAttribute("usertype", "customer");//
			// 添加用户类型
			Struts2Utils.getSession().setMaxInactiveInterval(60 * 15);
			String checkbox = Struts2Utils.getParameter("checkbox");

			Cookie(entity.getS_cust_email(), entity.getS_password(), checkbox);
			if (null != url && !"".equals(url)) {
				try {
					String kurl = "";
					String[] itemStrArr = url.split(",");
					for (int i = 0; i < itemStrArr.length - 1; i++) {
						kurl += itemStrArr[i] + "&";
					}
					kurl = kurl + itemStrArr[itemStrArr.length - 1];
					kurl = new String(kurl.getBytes("UTF-8"), "ISO-8859-1");
					Struts2Utils.getRequest().setAttribute("url", kurl);
					Struts2Utils.getResponse().sendRedirect(kurl);
				} catch (IOException e) {
					e.printStackTrace();
				}
				return null;
			}
			indexShow.setHelps(helpManager.findAll());
			return "order";
			// return "zccg";
		} catch (Exception e) {
			e.printStackTrace();
			indexShow.setHelps(helpManager.findAll());
			return INPUT;
		}
	}

	@Override
	public CustomerInfo getModel() {
		return entity;
	}

	public String login() {
		if (null == entity) {
			if (StringUtils.isEmpty(Struts2Utils.getParameter("url"))) {
				prompt = "用户名和密码不能为空";
			}
			putKurl(url);
			Struts2Utils.getRequest().setAttribute("appid", Constants.APP_ID);
			indexShow.setHelps(helpManager.findAll());
			return "save";
		}
		// entity.setS_cust_phone(entity.getS_cust_email());
		String username = entity.getS_cust_email();
		String password = entity.getS_password();
		List<customerInfoPo> cus = customerInfoManager.chicklogin(entity);
		entity.setS_password(password);
		if (cus.size() > 0) {
			if (cus.get(0).getI_record_status() == 3) {// 黑名单
				prompt = "黑名单";
				Struts2Utils.getRequest().setAttribute("appid",
						Constants.APP_ID);
				return "save";
			} else {
				LoginStatus.loginRepeat(Struts2Utils.getSession().getId(), cus
						.get(0).getId());
				// clearcompany();
				Struts2Utils.getSession().setAttribute("username",
						cus.get(0).getS_cust_name());
				Struts2Utils.getSession().setAttribute("userid",
						cus.get(0).getId());
				// Struts2Utils.getSession().setAttribute("usertype",
				// "customer");
				String nickname = cus.get(0).getS_nickname();
				if (StringUtils.isEmpty(nickname)) {
					nickname = cus.get(0).getS_cust_name();
				}
				Struts2Utils.getSession().setAttribute("nickname", nickname);
				Struts2Utils.getSession().setMaxInactiveInterval(60 * 15);
				String checkbox = Struts2Utils.getParameter("checkbox");
				Cookie(username, password, checkbox);
				if (null != url && !"".equals(url)) {

					if (cus.get(0).getS_cust_email() == null
							|| cus.get(0).getS_cust_phone() == null
							|| cus.get(0).getS_cust_phone().trim().equals("")
							|| cus.get(0).getS_cust_email().trim().equals("")) {

						AjaxUtil.ajaxResponseAlert(Struts2Utils.getResponse(),
								"请先完善个人的联系电话和邮箱!");
						Struts2Utils.getRequest().setAttribute("mgs",
								Constants_Yidian.kurl);
						return "updateinfo";

					} else {
						try {
							Struts2Utils.getResponse().sendRedirect(
									Constants_Yidian.kurl);
							Constants_Yidian.kurl = null;
						} catch (IOException e) {
							e.printStackTrace();
						}
						return null;
					}

				} else {
					indexShow.setHelps(helpManager.findAll());
					return "order";
				}
			}
		} else {
			// 用户名或密码错误
			prompt = "用户名或密码错误";
			// websiteBaseinfo = websiteBaseinfoManager.getWebsiteBaseinfo(1l);
			Struts2Utils.getRequest().setAttribute("appid", Constants.APP_ID);
			indexShow.setHelps(helpManager.findAll());
			return "save";
		}
	}

	private void clearcompany() {
		Struts2Utils.getSession().removeAttribute("companyname");
		Struts2Utils.getSession().removeAttribute("companyid");
		Struts2Utils.getSession().removeAttribute("nickcompany");
	}

	public void putKurl(String url) {
		String kurl = "";
		if (url == null) {
			return;
		}
		String[] itemStrArr = url.split(",");
		for (int i = 0; i < itemStrArr.length - 1; i++) {
			kurl += itemStrArr[i] + "&";
		}
		kurl = kurl + itemStrArr[itemStrArr.length - 1];
		try {
			kurl = new String(kurl.getBytes("UTF-8"), "ISO-8859-1");
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Constants_Yidian.kurl = kurl;
	}

	/**
	 * 添加删除cookie
	 * 
	 * @param customerInfoPo
	 * @param password
	 * @param checkbox
	 */
	private void Cookie(String username, String password, String checkbox) {
		Cookie cookieusername = new Cookie(username, password);
		Cookie cookie = new Cookie("loginusername", username);
		// Cookie cookieusertype = new Cookie("usertype", "customer");
		cookieusername.setPath("/");
		cookie.setPath("/");
		// cookie.setPath("/");
		if (checkbox != null) {
			cookieusername.setMaxAge(365 * 24 * 60 * 60);
			cookie.setMaxAge(365 * 24 * 60 * 60);
			// cookie.setMaxAge(365 * 24 * 60 * 60);
		} else {
			cookieusername.setMaxAge(0);
			cookie.setMaxAge(0);
			// cookie.setMaxAge(0);
		}
		HttpServletResponse response = ServletActionContext.getResponse();
		response.addCookie(cookieusername);
		response.addCookie(cookie);
		// response.addCookie(cookieusertype);
	}

	/**
	 * 读取kookie的内容
	 */
	/*
	 * public void readerCookie() { HttpServletRequest request =
	 * ServletActionContext.getRequest(); Cookie[] cookies =
	 * request.getCookies(); String username = null; String loginmsg = null; if
	 * (cookies != null && cookies.length > 0) {
	 * 
	 * for (int i = 0; i < cookies.length; i++) { if
	 * (cookies[i].getName().equals("loginusername")) { username =
	 * cookies[i].getValue(); break; } }
	 * 
	 * for (int i = 0; i < cookies.length; i++) { if
	 * (cookies[i].getName().equals(username)) { loginmsg =
	 * cookies[i].getValue(); } } } if (username != null && loginmsg != null) {
	 * entity = new CustomerInfo(); entity.setS_cust_email(username.replace("#",
	 * "@")); entity.setS_password(loginmsg); }
	 * 
	 * }
	 */

	// 验证码
	@Action(value = "/checkValidateCode")
	public void checkValidateCode() {
		String code = Struts2Utils.getParameter("code");
		String vc = (String) Struts2Utils.getSession().getAttribute(
				com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
		if (null != vc && !vc.equals(code)) {
			AjaxUtil.ajaxResponse(Struts2Utils.getResponse(), "0");
		} else {
			AjaxUtil.ajaxResponse(Struts2Utils.getResponse(), "1");
		}
	}

	/**
	 * 支持使用Jquery.validate Ajax检验email是否重复.
	 */
	public String check() {
		HttpServletRequest request = ServletActionContext.getRequest();
		String key = request.getParameter("k");
		String value = request.getParameter("v");
		String id = request.getParameter("i");
		Map<String, String> map = new HashMap<String, String>();
		map.put(key, value);
		map.put("id", id);
		if (customerInfoManager.check(map)) {
			Struts2Utils.renderText("true");
		} else {
			Struts2Utils.renderText("false");
		}
		return null;
	}

	@Action(value = "/forgetpasscom")
	public String forgetpass() {
		indexShow.setHelps(helpManager.findAll());
		return "forgetpasscom";
	}

	/**
	 * 忘记密码
	 * 
	 * @return
	 */
	@Action("/forgetpasswordcom")
	public void forgetpassword() {
		String email = Struts2Utils.getParameter("email");
		CustomerInfo cus = customerInfoManager.findUserByLoginName(email);
		if (cus == null) {
			Struts2Utils.renderText("您的账户不存在!");
			return;
		}

		String path = Struts2Utils.getRequest().getContextPath();
		String basePath = Struts2Utils.getRequest().getScheme() + "://"
				+ Struts2Utils.getRequest().getServerName() + ":"
				+ Struts2Utils.getRequest().getServerPort() + path + "/";
		Date date = new Date();
		Long time = date.getTime();
		String code = RandomUtil.getRandomCode();
		String html = " "
				+ cus.getS_cust_name()
				+ ":<br>   您好,<a href='"
				+ basePath
				+ "frontuser/frontuser!zhmm.action?id="
				+ cus.getId()
				+ "&code="
				+ Md5Util.encode(code)
				+ "&time="
				+ time
				+ "' style='color: blue; font-weight: bold;'>点击此处</a>对您的用户登录密码进行设置,为了您账户的安全,请在24小时之内进行密码修改,否则本链接将会失效<br><span style='float:right;margin-right: 50px;'>————云租车(www.yunzuche.com)</span>";
		forgPassInfo = new ForgPassInfo();
		forgPassInfo.setS_verification_code(code);
		forgPassInfo.setD_insert_time(date);
		forgPassInfo.setI_cust_id(cus.getId());
		forgPassManager.save(forgPassInfo);
		Mail.sendHtmlEmail(html, "云租车会员取回密码验证", cus.getS_cust_email(), cus
				.getS_cust_name());
		Struts2Utils.renderText("邮箱验证已发到您邮箱,请到您的邮箱查收");
		return;
	}

	public String zhmm() {
		String id = Struts2Utils.getParameter("id");
		String code = Struts2Utils.getParameter("code");
		String time = Struts2Utils.getParameter("time");
		ForgPassInfo fp = new ForgPassInfo();
		fp.setD_insert_time(new Date(Long.parseLong(time)));
		fp.setI_cust_id(Long.parseLong(id));
		fp.setS_verification_code(code);
		ForgPassInfo f = forgPassManager.findForgPassInfo(fp);
		CustomerInfo cus = customerInfoManager.getCustomerInfo(MathUtils
				.StringToLong(id));
		if (f != null) {
			Long l = (new Date()).getTime() - f.getD_insert_time().getTime();
			if (l < 1000 * 60 * 60 * 24 && l > 0) {
				if (Md5Util.encode(f.getS_verification_code()).equals(code)) {
					Struts2Utils.getRequest().setAttribute("id",
							fp.getI_cust_id());
					Struts2Utils.getSession().setAttribute("fgid",
							f.getId().toString());
					Struts2Utils.getSession().setAttribute("zhmmcusid",
							cus.getId());
					try {
						Struts2Utils.getResponse().sendRedirect(
								"redirectpasscom.action");
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					return null;
				}
			}
		}
		indexShow.setHelps(helpManager.findAll());
		return "shixiao";

	}

	@Action(value = "changepass", results = { @Result(name = "error", location = "/WEB-INF/content/frontuser/pw_cuowu.jsp") })
	public String changePass() {
		CustomerInfo cus = customerInfoManager.getCustomerInfo(entity.getId());
		boolean t1 = true;
		boolean t2 = true;
		String fgid = Struts2Utils.getParameter("fgid");
		if (cus != null) {
			if (cus.getS_cust_phone() != null) {
				if (cus.getS_cust_phone().equals(entity.getS_cust_phone())) {
					t1 = true;
				} else {
					t1 = false;
				}
			}

			if (cus.getS_id_code() != null) {
				if (cus.getS_cust_phone().equals(entity.getS_cust_phone())
						&& cus.getS_id_code().equals(entity.getS_id_code())) {
					t2 = true;
				} else {
					t2 = false;
				}
			}
		}

		if (t1 && t2) {
			if (fgid == null) {
				indexShow.setHelps(helpManager.findAll());
				return "error";
			}
			try {
				Struts2Utils.getSession()
						.setAttribute("zhmmcusid", cus.getId());
				Struts2Utils.getSession().setAttribute("fgid", fgid);
				Struts2Utils.getResponse().sendRedirect(
						"redirectpasscom.action");

			} catch (IOException e) {
				e.printStackTrace();
			}

			return null;
		}
		indexShow.setHelps(helpManager.findAll());
		return "error";
	}

	@Action(value = "redirectpasscom", results = { @Result(name = "success", location = "/WEB-INF/content/frontuser/pw_newmm.jsp") })
	public String redirectPass() {

		Long userid = (Long) Struts2Utils.getSession()
				.getAttribute("zhmmcusid");
		String fgid = (String) Struts2Utils.getSession().getAttribute("fgid");
		Struts2Utils.getSession().removeAttribute("zhmmcusid");
		Struts2Utils.getRequest().setAttribute("userid", userid);
		Struts2Utils.getRequest().setAttribute("fgid", fgid);
		indexShow.setHelps(helpManager.findAll());
		return SUCCESS;
	}

	@Action(value = "updatepasscom", results = { @Result(name = "chenggong", location = "/WEB-INF/content/frontuser/pw_xgcg.jsp") })
	public String updatepass() {
		customerInfoManager.update(entity);
		Long fgid = Long.parseLong(Struts2Utils.getParameter("fgid"));
		forgPassManager.updateStateById(fgid);
		indexShow.setHelps(helpManager.findAll());
		return "chenggong";
	}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值