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;}@Autowiredpublic void setMiscManager(MiscManager miscManager) {this.miscManager = miscManager;}public AccountManager getAccountManager() {return accountManager;}@Autowiredpublic void setAccountManager(AccountManager accountManager) {this.accountManager = accountManager;}public ForgPassManager getForgPassManager() {return forgPassManager;}@Autowiredpublic 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;}@Autowiredpublic void setHelpManager(HelpSettingManager helpManager) {this.helpManager = helpManager;}public String getYudingurl() {return yudingurl;}public void setYudingurl(String yudingurl) {this.yudingurl = yudingurl;}@Overridepublic 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;}@Overridepublic 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 函数 --//@Overridepublic 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";}@Overrideprotected void prepareModel() throws Exception {if (id != null) {entity = customerInfoManager.getCustomerInfo(id);} else {entity = new CustomerInfo();}}@Overridepublic 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;}}@Overridepublic 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 blocke.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 blocke.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";}}

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

  1. 一个action类中写多个方法需要继承MappingDispatchAction

    原本action里只有一个默认execute方法,今天我在action里增加了方法后发现页面卡死无法跳转了,原来如果写多个方法要继承DispatchAction类. 一个action中有一个execu ...

  2. struts2 的一个action中配置多个result input

    主题:struts2 的一个action中配置多个result input 讨论下 本文来自: 浪曦视频在线 作者: hoojo 发表于: 2009-6-4 19:05 阅读: 2005 人 收藏 看 ...

  3. 如何配置log4j每天产生日志,并且当天日志大于10M时自动生成另一个文件

    http://bbs.csdn.net/topics/390635339?page=1 如何配置log4j每天产生日志,并且当天日志大于10M时自动生成另一个文件 假设 11-11日 生成comlib ...

  4. mysql服务器管理员_配置MySQL服务器时,需要设置一个管理员账号,其名称是( )。...

    配置MySQL服务器时,需要设置一个管理员账号,其名称是( ). 答:root 当访问无效的数组下标时,会发生 答:抛出异常 频率特性 G(jω) 的曲线关于复数平面的实轴对称. 答:对 董先生提到, ...

  5. NR/5G - Type 1 codebook repetition配置时一个理解

    在Semi-Static HARQ Feedback的一些补充中有提到 - 若PDSCH配置了repetition,即一个PDSCH在多个Slot进行传输,类似于LTE中的PUSCH的TTI Bund ...

  6. Struts2之一个Action包含多个控制处理逻辑

    http://www.cnblogs.com/freeabyss/p/3290297.html 一.使用Action的动态方法调用     如果一个页面包含多个按钮,系统分别提交给Action的不同方 ...

  7. Struts2从一个action转到另一个action的两种方法

    在Struts2中,Action处理完用户请求后,将会返回一个字符串对象,这个字符串对象就是一个逻辑视图名.Struts 2通过配置逻辑视图名和物理视图之间的映射关系,一旦系统收到Action返回的某 ...

  8. 08-spring学习-annotation配置

    利用annotation配置注入关系 为了更好的解释此类存在的意义,下面通过一段习惯性的开发进行问题的描述,例如: 现在有一个IAdminService服务层,这个服务层要调用的是IAdminDAO和 ...

  9. phpstudy一个域名配置两个网站(一个是thinkphp5,一个是原生php)

    phpstudy一个域名配置两个网站(一个是thinkphp5,一个是原生php) 一.总结 一句话总结:把原生php的网站直接放到thinkphp5的public目录下可以解决以stem.aaaa. ...

  10. 此问题可能是由配置更改或安装另一个扩展导致的

    未能正确加载"Microsoft.VisualStudio.Editor.Implementation.EditorPackage, Microsoft.VisualStudio.Edito ...

最新文章

  1. spi flash 无法写入数据_非易失性Flash详解
  2. 关于举办第十七届全国大学生智能汽车竞赛的通知-加盖公章
  3. 2021年春季学期-信号与系统-第六次作业参考答案-第四小题
  4. WebsocketWebSSH
  5. c语言做贪吃蛇vs2015,熬书几个月,终于编出简易的贪吃蛇了,VS2013
  6. fscanf的返回值未成功输入的元素个数 .xml
  7. 剑指Offer_47_求1+2+3+...+n
  8. opencv 性能测试
  9. Oracle统计产生日志数据增长增量
  10. java生成数据库设计说明书(excel)
  11. svpwm的matlab模型,SVPWM的matlab仿真实现
  12. tp6验证码无法验证
  13. 教你巧用万用表测量大值电阻
  14. delphi7中的局部变量和全局变量
  15. python flv转mp4_ffmpeg将多个flv文件合成为mp4(golang版)
  16. 第十三周项目1---(4)Floyd算法验证
  17. 【寻找最佳小程序】09期:轻芒杂志——杂志感设计,美美地阅读各领域杂志...
  18. el-pagination分页自定义前往第几页样式(下拉框形式)
  19. 基于 HLS 创建 Golang 视频流服务器
  20. 吃字母------线程同步与互斥的学习

热门文章

  1. Aibaba Dubbo 的前世今生以及黑历史 主程序员梁飞 阿里P9(2016年查看)
  2. 220.存在重复元素III
  3. Adam自适应矩估计
  4. malloc和free的常识性问题
  5. python Gui基本使用方法
  6. latex 目录层次设置
  7. 【机器学习系列】概率图模型第六讲:因子图和道德图
  8. 广义线性模型(Generalized Linear Models, GLM)
  9. 【生信进阶练习1000days】day2-学习summarized experimental data与Down stream analysis
  10. 【51nod 1439】互斥对【容斥原理】